Django笔记(四)
模型
1 字段类型
- BooleanField() 布尔类型
- CharField() 字符串类型
- DateField() 日期类型
- DateTimeField() 时间日期类型
- DecimalField() 金融常用浮点类型
- EmailField() 邮件类型 带判断
- FloatField() 浮点类型
- ImageField() 文件类型,存储图片路径
- upload_to=’给相对路径(static/xx/xx)’ 会自动创建没有的文件夹
- IntergerField()整数类型
- URLField() 网址类型
- TextField() 存大量文本数据的 – text
2 字段选项
- null=true
- 指定当前字段是否允许为空
- 默认值是false
- default=0
- 为当前字段指定默认值
- db_index=true 设置索引
- max_length
- 指定数据的最大长度
- 在CharField()中必须设置的选项
- on_delete
- django2中的ForeignKey必选字段
on_delete=models.CASCADE
创建Author表
# 作者 Author:name age email
class Author(models.Model): name = models.CharField(max_length=32) age = models.PositiveSmallIntegerField() email = models.EmailField()
创建Book表
# 图书 Book:title publicate_date
class Book(models.Model): title = models.CharField(max_length=32) publicate_date = models.DateField(auto_now=True)
同步数据到数据库
python manage.py makemigrations
python manage.py migrate
练习:晚上天天生鲜美食表
- 完善生鲜美食的表
- 商品类型
- 类型名称 title
- 类型图片 picture
- 默认上传至static/upload/goodstype
- 类型描述 desc
- 商品实体
- 图片 picture(FileField)
- 默认上传至static/upload/goods
- 名称 name
- 价格 price(DecimalField)
- 产品规格 spec
- 销售状态(在售,下架) isActive(BooleanField 默认值为true)
- 用户实体 Users
- 电话号码 uphone
- 密码 upwd
- 邮件 uemail
- 用户名 uname
- 用户状态 isActive 默认为True
商品类型表
class GoodsType(models.Model): title = models.CharField(max_length=32) picture = models.FileField(upload_to='static/upload/goodstype')
商品表
class Goods(models.Model): name = models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) spec = models.CharField(max_length=32) picture = models.FileField(upload_to='static/upload/goods') isActive = models.BooleanField(default=True)
用户表
class Users(models.Model): uphone = models.CharField(max_length=11) upwd = models.CharField(max_length=68) uemail = models.EmailField(null=True) uname = models.CharField(max_length=32) isActive = models.BooleanField(default=True)
数据的版本切换问题
python manage.py migrate
- 执行所有应用中最新版本的数据库中间文件
python manage.py migrate 应用名称 版本号
- 执行某应用某版本中的中间文件
- 版本号是0001这样的数字,数字后面的不用管
通过数据库自动导出Models
python manage.py inspectdb > 文件名.py
- 将数据库中的表全部导入到指定的文件
数据库自动导出测试结果
from __future__ import unicode_literalsfrom django.db import models class AuthGroup(models.Model): name = models.CharField(unique=True, max_length=80) class Meta: managed = False db_table = 'auth_group' class AuthGroupPermissions(models.Model): group = models.ForeignKey(AuthGroup, models.DO_NOTHING) permission = models.ForeignKey('AuthPermission', models.DO_NOTHING) class Meta: managed = False db_table = 'auth_group_permissions' unique_together = (('group', 'permission'),) class AuthPermission(models.Model): name = models.CharField(max_length=255) content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING) codename = models.CharField(max_length=100) class Meta: managed = False db_table = 'auth_permission' unique_together = (('content_type', 'codename'),) class AuthUser(models.Model): password = models.CharField(max_length=128) last_login = models.DateTimeField(blank=True, null=True) is_superuser = models.IntegerField() username = models.CharField(unique=True, max_length=150) first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.CharField(max_length=254) is_staff = models.IntegerField() is_active = models.IntegerField() date_joined = models.DateTimeField() class Meta: managed = False db_table = 'auth_user' class AuthUserGroups(models.Model): user = models.ForeignKey(AuthUser, models.DO_NOTHING) group = models.ForeignKey(AuthGroup, models.DO_NOTHING) class Meta: managed = False db_table = 'auth_user_groups' unique_together = (('user', 'group'),) class AuthUserUserPermissions(models.Model): user = models.ForeignKey(AuthUser, models.DO_NOTHING) permission = models.ForeignKey(AuthPermission, models.DO_NOTHING) class Meta: managed = False db_table = 'auth_user_user_permissions' unique_together = (('user', 'permission'),) class
转载于:https://www.cnblogs.com/gao_x/p/10509370.html
Django笔记(四)相关推荐
- Django 笔记6 -- 多表查询
Django 笔记6 – 多表查询 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Djang ...
- Django 笔记3 -- URL
Django 笔记3 – URL Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Django ...
- Django笔记总结
1.web框架的本质 web通信流程 web我们这里指的就是通过浏览器去访问服务端,请求页面或者数据的通信方式,属于B/S架构.就是我们常见的网站.浏览器与服务端的通信流程:浏览器客户端发送一个请求信 ...
- Django笔记二十八之数据库查询优化汇总
这一篇笔记将从以下几个方面来介绍 Django 在查询过程中的一些优化操作,有一些是介绍如何获取 Django 查询转化的 sql 语句,有一些是理解 QuerySet 是如何获取数据的. 以下是本篇 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- MSSQL编程笔记四 解决count distinct多个字段的方法
MSSQL编程笔记四 解决count distinct多个字段的方法 参考文章: (1)MSSQL编程笔记四 解决count distinct多个字段的方法 (2)https://www.cnblog ...
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...
- JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档
POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...
- Ethernet/IP 学习笔记四
Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...
最新文章
- 有关GetPrivateProfileString的使用方法
- skill——iptables(五)
- 常用的排序算法的时间复杂度和空间复杂度 .
- 做一个.net 程序员要掌握的知识提纲
- Java异常处理教程
- 前端学习(1360) :学生档案信息管理2
- 国防科技大学计算机学院教员,我国最好的四所科技大学,第一名排名世界前列,还有一所是铁饭碗...
- 虚实结合:无需人工标注的可泛化行人再辨识
- 对Android蓝牙UUID的理解
- sql server 死锁排查
- 3811.排列-AcWing题库
- 读《大秦帝国》第二部
- android仿微信图片上传进度,Android开发之模仿微信打开网页的进度条效果(高仿)...
- Mysql主从复制和Redis主从复制
- Linux,grep命令,在大日志文件中搜索关键字 最后/最开始出现位置
- 方舟手游服务器gg修改,【修改贴】关于单机版gg修改器的应用。
- tcc activation offset 设置有误导致系统无法启动的解决办法
- 【Niagara 04】Tridium N4使用——生成报警信息
- html正则表达式验证字母,正则表达式校验字母和字符串组合
- Matlab 绘制多条曲线,方法!
热门文章
- 计算机蓝屏安全模式都启动不了,电脑一开机就蓝屏,安全模式也进不去怎么处理?...
- 3dsmax2013安装时提示visual2005c++库问题的解决方法
- selenium定位 百度搜索框输入关键字后,下拉框联想出来的怎么定位
- 史上最便捷搭建 ZooKeeper 服务器的方法(建议收藏)
- 【观察】新华三:融合技术优势和实践经验,推动智慧医疗驶入快车道
- 您应该知道的几个安卓照片恢复应用程序
- u盘启动linux3.0,5分钟打造U盘启动的Ubuntu (3篇)
- 网站优化:网站优化移动站SEO优化要点及注意事项
- maya具有多个材质的多边形批量传递材质的方法
- Go语言入门(一)之 结构体