39.django的ORM模型

django的orm(模型model)

创建的模型(model)的步骤:

​ 1.需要创建一个数据库

​ 2.在settings中配置连接数据库的信息:

​ 3.在对应的app中的__init__文件下面:
​ import pymysql
​ pymysql.install_as_MySQLdb()

​ 4.还需要在settings里的INSTALL_APPS中将对应app添加进去

orm基本的增删改查

1.创建表

一个类对应一个表,比如新键一个用户类,可以使用继承django中的models.Model来新键

对应字段设置为对象,比如id可以通过models.AutoField设置为自增整形类型,name可以通过models.CharFeild设置为varchar类型。

再将类转化为实际的表,通过2个命令

python manage.py  makemigrations  ### 生成迁移文件
python manage.py  migrate   ### 生成实际的表

2.增删改查

单表:

查询

models.UserInfo.objects.all() 
#<QuerySet [<UserInfo: UserInfo object>, <UserInfo: UserInfo object>]>
models.UserInfo.objects.values("name", 'age')
#<QuerySet [{'name': 'wdr', 'age': '18'}, {'name': 'sima', 'age': '16'}]>
models.UserInfo.objects.values_list('name','age')
#<QuerySet [('wdr', '18'), ('sima', '16')]>
models.UserInfo.objects.first()
#查询到的第一个对象UserInfo: UserInfo object
models.UserInfo.objects.filter(id=1).first()
#用filter加条件进行筛选查询,若想要查询id>3的可以通过id__gt=3来设置便可,如果不加条件相当于all()

增加

models.UserInfo.objects.create(name='wjk',age='19',ut_id=1)
#或者用可变长形参形式将字典打散为关键字传入方式写入

删除

models.UserInfo.objects.filter(id=4).delete()

更新

models.UserInfo.objects.filter(id=3).update(name='yyqx')

一对多连表的操作:

正向查询

res=models.UserInfo.objects.all()
for obj in res:
    print(obj.name,obj.age,obj.ut.title)
#### 神奇双下划线
models.UserInfo.objects.values('name', 'age', 'ut__title')

models.UserInfo.objects.values_list('username', 'age', 'ut__title')

反向查询

res = models.UserType.objects.first()
obj = res.userinfo_set.first()

# 通过表名小写_set反向查询这个表内信息
用表名小写__字段名
models.UserType.objects.values("title", 'userinfo__id', 'userinfo__age', 'userinfo__name')

猜你喜欢

转载自www.cnblogs.com/yellowcloud/p/11351203.html
今日推荐