一旦你创建了模型,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()方法调用队列中的第一个对象
网友评论