Mysql配置
搭建mysql服务,保证能正常运行
pip install mysqlclient
Setting配置数据库
如下是mysql数据库的配置
同步数据库
先生成表结构,检查是否有表结构变更:python manage.py makemigrations
再同步数据库:python manage.py migrate
同步完成后查看数据库能看到生成的表,如下
设计表
在models.py中根据需要编写表模型,如下,再通过python manage.py makemigrations和python manage.py migrate命令将表同步至数据库
同步完成后可以在数据库中看到表,如下,表名会以 appname_ 开头
设计表时常用的一些参数
- 主键:如果没有设计主键,则默认id就是主键,如上图id为主键
也可自定义主键:primary_key=True,如 uid = models.IntegerField(primary_key=True) 就是设置uid为主Email:models.EmailField() 会自动检验Email格式
- 默认值:models.CharField(default="xxx") 用default参数设置默认值
- 最大长度:models.CharField(max_length=10) 用max_length设置字段最大长度,Int最大长度11,Biginter最大长度20
- 空:name = models.CharField(null=True,blank=True,default='xx')
- null=True,表示数据库创建时该字段可不填,用NULL填充
- blank=True,表示代码中创建数据库记录时该字段可传空白(空串,空字符串)
- 文本类型:text = models.TextField(null=True, blank=True)
- 图片类型:img = models.ImageField()
- 时间类型:
timestr = models.DateTimeField() #日期+时间类型,2023-12-12 23:34:44
- date = models.DateField() #日期类型,2023-12-12
- time = models.TimeField() #时间类型,23:34:44
- auto_now 自动创建---无论添加或修改,都是当前操作的时间 updatetime = models.DateTimeField(auto_now=True)
- auto_now_add 自动创建---永远是创建时的时间 creattime = models.DateTimeField(auto_now_add=True)
- 文件类型:file = models.FileField()
- 布尔值:status = models.BooleanField()