Django 知識點總結

知識點總結

一、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('設置成功')



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章