一、Admin使用
进入自带Admin后台步骤:
1、创建超级用户 python manage.py createsuperuser
2、注册model类
3、访问 admin 管理页面
修改成中文
二、字段属性和选项
1.字段属性
使用时需要引入django.db.models包,字段类型如下:
注意:ImageField()字段需要借助pillow模块才能使用,因此需要先下载pillow模块。Python3.6后 使用PIL模块。
2.选项
通过选项实现对字段的约束,选项如下:
三、常用方法
1、all(): 查询所有结果
(1)返回 QuerySet 列表对象。获取对象时,通过索引或者遍历
2、filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
(1)返回 QuerySet 列表对象。获取对象时,通过索引或者遍历
(2)可以传入多个关键字,底层的sql 使用and 来连接多个条件
3、get(**kwargs):返回与所给筛选条件相匹配的对象,
(1)返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会 抛出错误。
(2)返回具体的某个模型类的对象,而不是QuerySet列表对象。
4、first():返回第一条记录
(1)返回具体的某个模型类的对象,而不是QuerySet列表对象。
5、last():返回最后一条记录
(1)返回具体的某个模型类的对象,而不是QuerySet列表对象。
6、exclude(**kwargs):它包含了与所给筛选条件不匹配的对象
7、order_by(*field): 对查询结果排序
(1)根据多个字段进行排序
(2)反向排序可以在字段名称前面加上“-”(减号)
(3)在模型中指定默认排序
8、reverse(): 对查询结果反向排序,
(1)请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model 类的Meta中指定ordering或调用order_by()方法)。
9、values(*field): 返回一个ValueQuerySet(一个特殊的QuerySet),运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
10、values_list(*field): 它与values()非常相似,它返回的是一个元组序列,
11、count(): 返回数据库中匹配查询(QuerySet)的对象数量。
12、exists(): 如果QuerySet包含数据,就返回True,否则返回False
总结:
1.返回对象方法get()、first()、last()
2.返回QuerySet对象方法
all()、filter()、exclude()、order_by()、reverse()、
values() 返回一个可迭代的字典序列。
values_list() 返回一个可迭代的元祖序列。
3.返回Boolean值方法 exists()
4.返回数字的方法count()
四、切片数据
一个常见的需求是只查找固定数量的行。假如数据库中有几千个出版社记录,但是只想显示第一个。为
此,可以使用 Python 标准的列表切片句法:
Publisher.objects.order_by(‘name’)[0]
<Publisher: Apress>
得到的 SQL 语句基本如下:
SELECT id, name, address, city, state_province, country, website
FROM books_publisher
ORDER BY name
LIMIT 1;
类似地,可以使用 Python 的范围切片句法检索数据子集:
Publisher.objects.order_by(‘name’)[0:2]
这样得到的是两个对象,基本上相当于下述 SQL 语句:
SELECT id, name, address, city, state_province, country, website
FROM books_publisher
ORDER BY name
OFFSET 0 LIMIT 2;
四、双下划线方法
5.xx__lt : 小于
例如:id__lt =2,获取 id小于2的所有记录。
扩展: xx_lte = 2 小于等于2
6.xx_gt : 大于
扩展:
(1).xx_gte=30 大于等于30
(2).查找大于等于20 小于等于30的所有记录。
7.xx_in: 包含某些值
例如获取年龄是11,32的记录
扩展:不包含
8.xx_contains(): 包含某个字符的记录
扩展: xx_icontains() 忽略大小写
9.xx_range(): 查找范围
查找年龄在20 至 30之间的所有记录
10.xx_startswith : 获取 以 xx开头的记录
11.endswith : 获取以xx结尾的记录
12.date类型字段可以根据年月日进行过滤