知識點總結
一、URL:
1、在python 正則表達式中,正則表達式命名組的語法是(?P<name>pattern),其中命名組中的命名就是name,並且pattern 是某些匹配的模式
2.可以定義404 錯誤頁面,統一處理
3.包含其他的 urlpatterns 可以用include
4.url 的反向解析
urlpatterns = [
path('',views.index,name='index')
]
from django.urls import reverse
def index(request):
print (reverse('index'))
return HttpResponse('Ok')
打印輸出:
/index
二、Mode 的開發流程:
1)1.在應用的models.py 中定義模型類,要求繼承自models.Model
2.把應用加入到settings 配置文件的INSTALLED_APPS 項中
3.生成遷移文件
python manage.py makemigrations
4.執行遷移
python manage.py migrate
5.使用模型類進行CRUD 操作(即增刪改查)
2)mode 增刪改查
#增
ob=Users() #創建實例對象
ob.name='zhangsan'
ob.age=18
ob.phone='112333444'
ob.save()
#改
ob=Users.objects.get(id=2)
ob.name='lisi'
ob.age=30
ob.phone='11177777'
ob.save()
#刪除
ob=Users.objects.get(id=2)
ob.delete()
#查詢
mod=Users.objects #獲取user 模型的Model 操作對象
# ulis=mod.all() #獲取所有數據
# ulist=mod.filter(name='lisi') #獲取name 值爲lisi 的信息
# ulist=mod.filter(age__gt=20) #獲取所有age 大於20 的信息
#ulist=mod.filter(age__gte=30) #獲取所有age 大於等於30 的信息
# ulist=mod.filter(age__lte=20) #獲取所有gae 小於等於20 的信息
ulist=mod.order_by('age') #以age
for u in ulist:
print (u.id,u.name,u.age,u.phone,u.addtime)
三、cookie 中存數據(保存在客戶端,即保存在客戶端電腦硬盤上,可以找到cookie 對應的磁盤文件):
1.普通
response.set_cookie('uname','zhangsan',expires=value,path='/')
2.加鹽
普通cookie 是明文傳輸的,可以直接在客戶端直接打開,所以需要加鹽,解鹽之後才能查看
response.set_signed_cookie('k','v',salt='fdsa')
cookie 中取數據:
1.普通
request.COOKIES['hello']
request.COOKIES.get('hello')
四、session
1.設置session 後數據庫中對數據進行了序列化
例如 request.session['uname']='zhangsan' 進行session 設置,數據庫中session 值爲
session_key: rgn2ks6apf7k3il99uiud0y3f7wwfab0 session_data:NmRkZDI5YTY1OThkZTUwNmEzOWIzNTI4YTMzZmQ1ZTk5MGVhOGZmODp7InVuYW1lIjoiemhhbmdzYW4ifQ==
expire_date:2022-04-27 02:45:23.424624
2022-04-27 02:45:23.424624D:\python27\Lib\site-packages\django\conf\global_settings.py
具體session 操作:
#在session 中默認存放時間是兩週
#SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
request.session['uname']='zhangsan'
#設置有效時間
#1.參數類型:整數:秒
request.session.set_expiry(5*24*60*60)
#刪除session 數據,只是刪除對象中sesion 數據
del request.session['uname']
#刪除session 對象和數據庫中的數據
request.session.flush()
return HttpResponse('設置成功')