静态文件及相关配置( 二 )


orm
orm:对象关系映射()
类映射为表对象映射为记录对象点属性 映射为字段对应的值"""orm的存在可以让不会MySQL的python程序员能够使用python的语法简单快捷的操作MySQL"""1. 先去应用目录下的models.py编写模型类class User(models.Model):类似于定义表名id = models.AutoField(primary_key=True)# 类似定义主键# id int primary key auto_incrementname = models.CharField(max_lenght=32)# 类似定义了普通字段# name varchar(32)pwd = models.IntegerField()#类似定义了整数# pwd int2. 数据库迁移(同步)命令1. 将models中有关数据库的操作记录下来(migrations)python manage.py makemigrations2. 将真正的操作影响到数据库中python manage.py migrate"""当修改了models中与数据库相关的代码时,都需要执行上述的命令可以简写,也可以指定应用单独迁移(同步)"""3. 表的主键在orm中,可以不写,orm会自动添加一个id的主键
简写命令:
orm语法
1. 查models.User.objects.filter()# , , ]># 结果可以看成是一个列表套数据对象# 可以使用索引获取对象,但是不推荐使用,可以使用first()方法,如果没有值会返回none2. 增models.User.objects.create(name='jerry', pwd=231)3. 改modeles.User.objects.filter(id=1).update(name='json')# 修改需要选择修改目标,否则会修改全部4. 删models.User.objects.filter(name='jerry').delete()# 删除数据不能够直接删除,要配合filter使用,想要全部删除数据filter内不填写条件即可
orm外键关联
一对多外键字段建在多的一方外键字段名 = models.ForeignKey(to='目标字段名', on_delete=models.CASCADE)多对多字段直接建在某张表中,orm会自动创建第三张表外键字段名 = models.ManyToManyField(to='目标字段名')一对一字段建在查询评率高的表中外键字段名 = models.OneToOneField(to='目标字段名', on_delete.CASCADE)"""外键字段orm会自动在末尾添加'_id'想要自己选择外键关联字段,在括号内使用'to_field=xxx'修改"""