当前位置: 首页 > news >正文

Django母婴商城项目实践(五)

4、数据模型的搭建与使用

1、介绍

  • Django对各种数据库都提供了很好的支持,包括:PostgreSQL、MySQL、SQLite 和 Oracle,且为这些数据库提供了统一的API方法,这些API称为ORM框架,通过使用Django内置的ORM框架可以实现数据库的连接与读取操作。
  • ORM框架是一种程序技术,用于实现面向对象程序语言在不同类型系统的数据之间的转换,从效果上来说,它创建了一个可在编辑语言中的虚拟对象数据库,通过对虚拟数据库的操作来实现对目标数据库的操作,虚拟对象数据库与目标数据库是相互对象的。

2、Model设计

  • 修改 commodity应用下的models.py
from django.db import models# 商品类别表
class Types(models.Model):id = models.AutoField(primary_key=True)firsts = models.CharField('一级类型', max_length=100)seconds = models.CharField('二级类型', max_length=100,  unique=True)def __str__(self):return str(self.id)class Meta:verbose_name = '商品类型'verbose_name_plural = verbose_namedb_table = 'types'# 商品信息表
class CommodityInfos(models.Model):id = models.AutoField(primary_key=True)name = models.CharField('商品名称', max_length=100)sezes = models.CharField('颜色规格', max_length=100)price = models.FloatField('商品价格')discount = models.FloatField('折后价格')stock = models.IntegerField('存货数量')sold = models.IntegerField('已售数量')likes = models.IntegerField('收藏数量')created = models.DateField('上架日期', auto_now_add=True)img = models.FileField('商品主图', upload_to=r'imgs')details = models.FileField('商品介绍', upload_to=r'details')#  商品类型外键:若商品类型被删除,则商品表记录设置为null,关联Types表中的 seconds字段【表达:1个类型对应多件商品】types = models.ForeignKey(Types, on_delete=models.SET_NULL,  null=True, to_field='seconds', verbose_name='商品类型')def __str__(self):return str(self.i
http://www.dtcms.com/a/285840.html

相关文章:

  • Python 使用期物处理并发(使用concurrent.futures模块下载)
  • 黑马Node.js全套入门教程,nodejs新教程含es6模块化+npm+express+webpack+promise等_ts对象笔记
  • MISRA C-2012准则之指针类型转换
  • build.log中的is not a subdirectory of和ScanSourceDirectories函数的关系
  • 「Java案例」方法重装求不同类型数的立方
  • MySql:索引,结构
  • Leetcode 04 java
  • cocosCreator2.4 Android 输入法遮挡
  • JAVA中StringBuilder类,StringJoiner类构造函数方法简单介绍
  • C语言基础:数组练习题
  • Zabbix安装-Server
  • 【JS笔记】Java Script学习笔记
  • 【C语言进阶】题目练习(2)
  • react控制react Popover组件显示隐藏
  • Vue3 中使用 Element Plus 实现自定义按钮的 ElNotification 提示框
  • WAF 能防御哪些攻击?
  • logback日志控制服务器日志输出
  • Leetcode刷题营第三十三题:对称二叉树
  • Gitee 远程库多人如何协作?
  • gitlab-runner配置问题记录
  • hive分区表临时加载日批数据文件
  • TapData 出席 2025 MongoDB 用户大会新加坡站,分享构建实时统一数据平台最佳实践
  • day24 力扣93.复原IP地址 力扣78.子集 力扣90.子集II
  • 【基座模型】Qwen3报告总结
  • 告别 addEventListener
  • effective python 条款11 学会对序列做切片
  • 人脸检测算法——SCRFD
  • 智能Agent场景实战指南 Day 16:Agent记忆系统设计
  • 解决 Selenium 页面跳转过快导致的内容获取问题:从原理到实践
  • 基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证