Model | Form | ModelForm

Model 数据库操作
Form 用户请求的验证
ModelForm 数据库操作(部分)用户请求验证(部分)

Model操作

数据表操作

  • Code First(代码优先)
    • 创建类 -> 自动生成表
  • DB First(数据库有限)
    • 创建表 -> 自动生成类

一对多操作

# 用户表
class User(models.Model):
	name = models.CharField(max_length=10)
	email = models.EmailField(max_length=32)
	# 与用户类型表建立一对多关系
	user_type = models.ForeignKey('UserType')
# 用户类型表 
class UserType(mdoels.Model):
	name = models.CharField(max_length=10)

应用场景:

建立多对多操作的两种方式

  1. django的ManyToManyField()

更适合admin添加表数据

  1. 自己创建第三张表以两个ForeignKey()建立多对多关系

更适合调用表数据

一对一(OneToOneField())表
应用场景:1.单表过大,2.适合admin选择一对一数据

字段

数字

字符串

user = models.CharField()	# 普通字符
email = models.EmailField()	# 带正则的字符串

时间

二进制

文件

fiel = models.FileField(upload_to='path')	# 文件
#图像
w = models.IntegerField()	# 宽度
h = models.IntegerField()	# 高度
img = ImageField(upload_to='path', width_field='w', height_field='h')	# 自动获取图片宽高

字段参数

"""指定生成数据库列信息"""
null                数据库中字段是否可以为空
db_column           数据库中字段的列名
default             数据库中字段的默认值
primary_key         数据库中字段是否为主键
db_index            数据库中字段是否可以建立索引
unique              数据库中字段是否可以建立唯一索引
unique_for_date     数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month    数据库中字段【月】部分是否可以建立唯一索引
unique_for_year     数据库中字段【年】部分是否可以建立唯一索引
"""外键字段参数"""
to
to_fields
related_name
on_delete
limit_choices_to
"""admin显示信息"""
verbose_name        Admin中显示的字段名称
blank               Admin中是否允许用户输入为空
editable            Admin中是否可以编辑
help_text           Admin中该字段的提示信息
choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作
					如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值