持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
Django基础3
写在前面
初一的学生,请多多关照,希望能在掘金记录自己的学习历程!❤️
这一篇是接着上一篇的基础写的,也就是Django基础-2这一篇,没有看过的请先去康康
数据类型格式
使用Django框架编写一个数据库驱动的Web应用时,第一步是定义模型,也就是数据库结构设计和附加的其他元数据。Django支持ORM映射,所以我们使用模型类操作关系型数据库
添加数据模型
在article/models.py中,创建User模型和Article模型,关键代码如下:
from django.db import models # 引入django.db.models模块
class User(models.Model):
"""
User模型类,数据模型应该继承于models.Model或其子类
"""
id = models.IntegerField(primary_key=True) # 主键
username = models.CharField(max_length=30) # 用户名,字符串类型
email = models.CharField(max_length=30) # 邮箱,字符串类型
class Article(models.Model):
"""
Article模型类,数据模型应该继承于models.Model或其子类
"""
id = models.IntegerField(primary_key=True) # 主键
title = models.CharField(max_length=120) # 标题,字符串类型
content = models.TextField() # 内容,文本类型
publish_date = models.DateTimeField() # 出版时间,日期时间类型
user = models.ForeignKey(User, on_delete=models.CASCADE) # 设置外键
上述代码中,每个模型的每一个属性都指明了models下面的一个数据类型,django.db.models提供了Django数据模型中常见的字段类型如下
AutoField 一个id自增的字段,但创建表过程中Django会字段添加一个自增的主键字段
BinaryField 一个保存二进制源数据的字段
BooleanField 一个布尔值的字段,后台默认呈现CheckBox形式
NullBooleanField 可以为None值的布尔值字段
CharField 字符串值字段,必须指明max_lenth值,后台默认TextInput形式
TextField 文本域字段,用于大量文本,后台默认Textarea格式
DateField 日期字段,代表Python中datetime.date的实例,后台默认TextInput形式
DateTimeField 时间字段,代表Python中datetime.datetime的实例,后台默认TextInput形式
EmailField 邮件字段,是CharField的实现,用于检查是否符合邮箱地址格式
FileField 上传文件字段,后台默认ClearableFileInput格式
ImageField 图片上传字段,是FileField的实现,后台默认ClearableFileInput格式
IntegerField 整数值字段,在管理后台默认呈现NumberInput或TextInput
FloatField 浮点数值字段,在管理后台默认呈现NumberInput或TextInput
SlugField 只保存字母,数字,下划线和连接符,一般用于生成URL的短标签
UUIDField 保存一般同意标识符的字段,建议提供默认值default
ForeignKey 外键关系字段,需要提供外检的模型参数和on_delete参数
ManyToManyField 多对多关系,与ForeignKey类似
OneToOneField 一对一关系字段,常用于扩展其他模型