Django基础-3

117 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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 一对一关系字段,常用于扩展其他模型