单表 查询
1.模板導入
共有的相同html頁面版塊(多個頁面共有的html代碼塊)
在具體頁面{% include '共有的html頁面版塊路徑' %}
2.自定義模板導入
共有的相似html頁面版塊(html代碼塊內(nèi)容為可變的)
自定義inclusion_tag,頁面模板給裝飾器,函數(shù)返回字典形式的數(shù)據(jù)
在具體頁面{% load 自定義tag的模板名 %}? {% inclusion_tag 函數(shù)名或別名 參數(shù)們 %}
3.母版
定義母版,流程block接口
具體頁面繼承母版
具體頁面完成block接口部分的特有html代碼塊,通過{{ block.super }} 來獲取模板block接口中原有的html代碼塊
三,測試文件運行Django項目
1.加載項目配置文件
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE","項目名.settings")
2.啟動Django
import django
django.setup()
3.使用項目中的各個模塊
四.簡單增刪改查
1.增
User.objects.create(name='Owen',age=10,birthday='2008-08-08')
user = User(name='Zero', age=8, birthday='2010-06-01')
user.save()
2.查
操作的結果永遠是一個list
users = User.objects.filter(name='Owen')
只能操作有且只有一條數(shù)據(jù)的記錄
user = User.objects.get(id=1)
3.改
User.objects.filter(name='Owen').update(name='Owen_best')
users = User.objects.filter(name='Owen_best')
for user in users:
user.name = 'Owen'
user.save()
4、刪
User.objects.filter(name='Owen').delete()
user = User.objects.filter(name='Zero').first()
user.delete()
五、單表操作函數(shù)
1. all():查詢所有結果list,支持正向索引取值[i],支持索引切片[m:n]
2. filter(**kwargs):查詢滿足條件的所有結果list
3. get(**kwargs):查詢滿足條件的唯一對象obj,查詢結果不為obj則拋出異常
4. exclude(**kwargs):查詢滿足條件的對立面的所有結果list
5. order_by(*field):查詢按照指定字段進行排序后的所有結果list,
'tag_name'代表正序,'-tag_name'代表降序
6. reverse():反轉(zhuǎn)排序查詢的所有結果list
7. count():統(tǒng)計返回查詢結果list的長度
8. first():返回查詢結果中的第一個對象obj
9. last():返回查詢結果中的最后一個對象obj
10. exists():判斷查詢結果是否存在,值為布爾類型
11. values(*field):按照指定字段(們)進行查詢,返回存放包含字段
(們)的字典的列表list
12. values_list(*field):同values類似,返回存放數(shù)據(jù)的元組的列表list
13. distinct():從查詢結果中剔除重復字段(一般和values結合使用)
六、模糊查詢
user_list = User.objects.filter(id__gte=1)
# 整型相關
age__exact=8 # 確切匹配8
age__in=[8, 10] # 8或10
age__gt=8 # 大于8
age__gte=8 # 大于等于8
age__lt=8 # 小于8
age__lte=8 # 小于等于8
age__range=[8, 10] # 8到10之間
age__isnull=0|1 # 0:is not null | 1:is null
# 字符串相關
name__startswith # 后方模糊匹配
name__endswith # 前方模糊匹配
name__contains # 前后方均模糊匹配
name__regex # 正則匹配
name__istartswith # 不區(qū)分大小寫后方模糊匹配(i開頭就是不區(qū)分大小寫)
# 時間相關
birthday__year=2008 # 時間年份模糊匹配
七、F與Q查詢
from django.db.models import F, Q
# F基于計算 F('字段名')
# 案例一:將id為1的結果年齡增加1
User.objects.filter(id=1).update(age=F('age')+1)
# 案例二:查詢id是年齡1/4的結果
user = User.objects.filter(id=F('age')/4)
# Q基于關系 Q('字段條件')
# 與
User.objects.filter(Q(id=1) & Q(age=10)) # id=1 并且 age=10
# 或
User.objects.filter(Q(id=1) | Q(id=2)) # id=1 或 id=2
# 非
User.objects.filter(~Q(id=1)) # id 不為 1
轉(zhuǎn)載于:https://www.cnblogs.com/suncunxu/p/10478358.html
總結
- 上一篇: 042、用volume containe
- 下一篇: Ghost 2.16.3 发布,基于 M