上一篇:Django之Model操作切换连接MySQL数据库(默认连接django自带是sqlite3数据库)【ORM篇一】https://blog.csdn.net/Burgess_zheng/article/details/86564137
目录
建表流程
实战之Django之Model建表流程 https://blog.csdn.net/Burgess_zheng/article/details/86564984
建表流程
1.创建一个app
2.创建完APP需要在settings下进行注册
3.在app下的model.py文件进行建表操作
4.项目下执行命令进行把表创建进数据库我们这里就先创建两张表,一种是UserInfo列表 一张是UserGroup表
并且UserInfo需要一个字段设置foreign key关联UserGroup的主键
我们占时不进行任何操作(后面陆续会有操作和参数汇总),只需要建表的流程即可
1.django创建app
j进入Django项目的目录下:
python manage.py startapp app_name #可创建N个app ,app_name自定义app名称
2.settings进行注册APP
路径:project_name/project_name/settings.py
#####APP注册##### INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app_name', ]
3.创建类(继承)和字段
路径:project/app/models.py
from django.db import models #UserGroup(组表) class UserGroup(models.Model): uid = models.AutoField(primary_key=True) #创建一个自增的列(主键)如果不写:默认是也有自增列,该列的字段名:id caption = models.CharField(max_length=32) ctime = models.DateTimeField(auto_now_add=True,null=True) #auto_now_add=True 创建数据的时候,该列不用加,自动生成当前时间 uptime = models.DateTimeField(auto_now=True, null=True) #auto_now 更新数据的时候该列自动生成更改的当前时间 #但是下面这种更改数据,auto_now该列还是不会生效 #UserInfo(用户表) class UserInfo(models.Model): #默认字段字段ID 且是主键 username =models.CharField(max_length=32,blank=True,verbose_name='用户名') # 用户名列,字符串类型,指定长度32字符 #(如果是数字类型models.IntergerFiled无需指定长度,否则报错) password = models.CharField(max_length=60,editable=False) # 密码名列,字符串类型,指定长度64字符 email = models.CharField(max_length=60,help_text='邮箱') test = models.EmailField(max_length=19,null=True) #只支持邮箱格式(django的admin有效) #test = models.URLField(max_length=19, null=True) #只支持URL格式(django的admin有效) #test = models.GenericIPAddressField(max_length=19, null=True) #只支持IPV4和IPV6格式 #gender = models.CharField(max_length=60,null=True) user_type_choices = (#变量=元组嵌套元组,是存放在内存里面的 (1,'超级用户'), (2,'普通用户'), (3,'普普通通用户'), ) user_type_id = models.IntegerField(choices=user_type_choices,default=1) #该字段引用了上面的嵌套元组 IntegerField:数字类型,默认值都是1超级用户 user_group = models.ForeignKey("UserGroup",to_field='uid',default=1,on_delete=models.CASCADE) #该字段UserGroup表的主键uid进行关联 to_field='uid'不写默认就是关联UserGroup表的主键 #只要是外键的字段,我们数据库生产表的时候,字段名字会自动变 user_group_id #user_group_id 该字段作用:查询UserInfo表的该字段的值 #user_group 该字段作用:UserInfo表每行数据外键所关联UserGroup的主)的数据可被查询
4.在创建该表并且存放到数据库
#Terminal 终端操作(cd project 进入该project目录)
python manage.py makemigrations #创建表结构
python manage.py migrate #表写入进入数据库
#默认写入django自带的sqlite,如要链接mysql请在setting进行定义
上一篇:Django之Model操作切换连接MySQL数据库(默认连接django自带是sqlite3数据库)【ORM篇一】https://blog.csdn.net/Burgess_zheng/article/details/86564137