Django 模型API基本数据访问

2019-02-15  本文已影响0人  LittleTrue

一旦你创建了模型,Django自动为这些模型提供了高级的Python API。 运行 python manage.py shell 并输入下面的内容试试看:

模型数据insert和update
//从应用。模型中导入模型关系映射类
 >>> from GDweb.models import amazon_search

//实例化该类, 传入字段数据
 >>> as_mod = amazon_search(goods_name='Apress', goods_attr='Avenue',
 goods_price='22.2', comment_num='1', comment_star='1',
 detail_href='http://www.apress.com/', price_quality='1')

//将对象字段属性保存到数据库
 >>> as_mod.save()

//接下来再调用 save() 将不会创建新的记录,而只是修改记录内容(也就是 执行 UPDATE SQL语句,而不是 INSERT 语句):
>>> as_mod.name = 'Apress Publishing'
>>> as_mod.save()

模型数据select
//从一个给定的模型表类中取出所有记录(注意这里是模型类, 不是由模型类实例驱动):
//返回列表
 >>> amazon_search.objects.all()

//数据过滤筛选条件查询
//返回列表
 >>> amazon_search.objects.filter(name='Apress')

//数据过滤筛选条件查询
//返回单个对象
 >>> amazon_search.objects.get(name='Apress')

//多种返回方式
all()   获取所有   ob = models.Users.objects.all()
filter()  筛选  ob = models.Users.objects.filter(id = 1)
exclude()  排除
order_by()  排序
values():一个对象构成一个字典,然后构成一个列表返回
count()  结果集数量

//排序
//返回列表
 >>> amazon_search.objects.order_by("name")

//限制返回数量
//对于返回一个列表的方法, 可以用列表的分片和索引操作进行限制
 >>> amazon_search.objects.filter(name='Apress')[0:2]

//批量更新使用update方法对, 对列表对象使用update即为批量修改
amazon_search.objects.filter(name='Apress').update(country='USA')
模型select操作构造多样化的查询语句:

__contains 完成魔术操作构造LIKE语句模糊查询

//会生成  WHERE name LIKE '%press%';
amazon_search..objects.filter(name__contains="press")

更多操作参考
注意: 以上介绍的多个操作可以进行链式连锁从而构造复杂查询
注意: 如果需要一步完成上面的对象的创建与存储至数据库,就使用objects.create() 方法。

模型删除对象

删除数据库中的对象只需调用该对象的delete()方法即可:

//用法与update相同, 可以删除get获取的单个对象对应的数据, 也可以批量删除
amazon_search.objects.filter(name='Apress').delete()

注意:
取模型数据的时候大多数都会用

teacher = TeacherModer.objects.filter(id=user_id).first()

而不是

teacher = TeacherModer.objects.get(id=user_id)

get 方法在取不到值或者取到多个值的时候会触发异常

filter 方法在取不到会返回一个空的Queryset,而防止取多我们可以调用.first()方法调用队列中的第一个对象

上一篇 下一篇

猜你喜欢

热点阅读