[TOC=1,5]
>[success] # Cookies
Cookie是由服務器端生成,發送給瀏覽器,瀏覽器將發送的cookie記錄,當用戶訪問的時候講cookie發送給服務器端,進行判斷,一般應用場景在網頁登陸。
有時候我們發現,我在谷歌瀏覽器登陸,但打開ie又給重新登陸,但是在使用谷歌卻不用,因為cookie是儲存在各自的瀏覽器中

>[info] ## 常用的cookies方法
>[danger] ##### 使用思路
~~~
1.在登錄頁面的時候,當用戶民密碼輸入正確后,通過cookies 給瀏覽器保存cookie 的地方賦值
2.在非登錄頁面,判斷當前cookies 是否正確并且存在
~~~
>[danger] ##### views -set_cookie 生成cookies鍵值對給瀏覽器
~~~
red = redirect('/index/')
red.set_cookie("username",u)
return red
~~~
>[danger] ##### views -set_cookie("username",u,salt='加鹽')
~~~
red = redirect('/index/')
red.set_signed_cookie("username",u,salt="pwd")
return red
~~~
>[danger] ##### 設置時間以秒為單位-set_cookie("username",u,max_age=data)
~~~
red = redirect('/index/')
#設置十秒后過期
red.set_cookie("username",u,max_age=10)
return red
~~~
>[danger] ##### 以具體的時間時set_cookie("username",u,expires=data)
~~~
import datetime
data = datetime.datetime.utcnow()
data = data + datetime.timedelta(seconds=5)
red = redirect('/index/')
red.set_cookie("username",u,expires=data)
return red
~~~
>[danger] ##### 設置生效路徑set_cookie("username",u,path='/')
>[danger] ##### 設置生效域名set_cookie("username",u,domain=None)
>[danger] ##### https傳輸cookieset_cookie("username",u,secure=False)
>[danger] ##### 只能http協議傳輸,
>無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)set_cookie("username",u,httponly=False)
>[success] # 案例
>[danger] ##### views 登陸案例
~~~
from django.shortcuts import render,redirect
from . import models
# Create your views here.
def login(request):
msg =""
if request.method == "GET":
return render(request,'login.html',{"msg":msg})
elif request.method == "POST":
u = request.POST.get('user',None)
p = request.POST.get('pwd',None)
if u and p :
obj = models.userinfo.objects.filter(user=u, pwd=p)
if obj:
red = redirect("https://www.baidu.com")
# 做cookies 保存
red.set_signed_cookie("username",u,salt="pwd")
return red
msg = "密碼錯誤"
return render(request,'login.html',{"msg":msg})
def index(request):
if request.method == "GET":
# 獲取瀏覽器中的cookies
u = request.COOKIES.get("username")
if u :
return render(request,"index.html",{'u':u})
return redirect("/login.html")
~~~
>[danger] ##### 分頁案例
juqery.cookie.js和jquery-1.12.4.js,主要用這兩個包版本無要求
* 思路如下:
~~~
1.通過js 獲取頁面下拉選擇的頁數,通過$.cookie("key","val")方法進行保存。
2.前端觸發頁面刷新,后臺通過request.COOKIE.get()方法用來接受,前端傳回的值
3.通過傳回的cookie,接受后改變接片值
~~~
~~~
<select id="ps" onchange="chan(this)">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
</select>
<script>
$(function () {
var v=$.cookie("page_count");
if(v){
$('#ps').val(v);
}else {
$('#ps').val(10);
};
});
function chan(ths) {
var v = $(ths).val();
$.cookie("page_count",v);
location.reload();
}
</script>
~~~

- 網絡原理
- 為搭建框架做準備
- 簡單認識網路
- 自定義模擬網站案例
- 優化最終框架
- 數據存儲 -- data
- 用戶個人信息存儲 -- User.txt
- 路由映射 -- routes
- 處理用戶信息 -- routes_static.py
- 保存靜態文件 -- static
- templates -- html 集中處理模塊
- 首頁 -- index.html
- 登陸 -- login.html
- 用戶注冊頁面 -- register
- 日志模塊 -- log.gua.txt
- 啟動文件--server.py
- orm處理 -- model.py
- 日志模塊 -- utils.py
- 兩種數據庫類型
- 傳統數據庫了解篇
- 前端快速入門
- JS簡單使用入門
- css簡單快速入門
- DJANGO
- virtualenv-創建虛擬環境
- 項目結構
- django-admin中文配置
- django-打印sql語句
- django-基礎
- 認識MVC和MTV
- Django--初識
- Django--初識案例
- Django-FBV/CBV
- Django--常用input 交互
- Django-url
- Django-url.py 配置
- Django-include 使用
- Django-url name
- Django-ORM
- ORM-數據庫配置
- ORM-model字段
- ORM-model字段解釋
- ORM-字段選項
- ORM-查詢
- ORM-四種常用查詢方法
- ORM-三種獲取數據
- ORM-其他查詢方式
- ORM-條件查詢雙線
- ORM-Q和F條件使用
- ORM-三種數據庫交互
- 案例 -- 一對多
- ORM-技巧/常見問題
- ORM-N+1 問題
- ORM-并發的處理
- ORM-數量查詢、
- ORM-正向反向查詢
- ORM-基礎案例一
- ORM-基礎一對多案例
- Django-templates
- Django-模板的繼承
- Django-模板的過濾
- Django-自定義模板的過濾
- Django-cookie
- Django-cookies 裝飾器
- Djang-session
- Django-CSRF
- Django-中間件 -- 后續了解
- Django- 緩存 -- 沒有深入了解
- Django-form
- From-ajax
- form-內部驗證處理
- form-屬性
- form-常用的標簽字段
- form-常用的下拉和選擇
- form-widget速查
- Django-ajax序列化
- Django-多種ajax寫法
- ajax-原生寫法
- ajax-$寫法
- ajax-ifram
- Django-ajax圖片上傳
- ajax-原始寫法
- ajax-正常寫法
- iframe+form
- 實戰寫法
- Django-常用自編寫組件
- Django-雙菜單組合搜索
- Django - 多菜單組合搜索
- Django-分頁
- django-綜合基礎
- 綜合基礎-render
- django-admin
- admin-頁面配置
- admin-字段配置
- admin-編輯頁面
- admin-forms驗證
- admin-創建抽象類
- django-驗證碼
- 驗證碼-第三方生成庫
- 驗證碼-view.py使用
- 驗證碼-注意引入Monaco.ttf
- django-用戶注冊
- 注冊-form 模塊
- 注冊-views 模塊
- 注冊-html模塊
- 注冊-model模塊
- django-用戶登錄三種
- session登錄
- form-session 寫法
- view-寫法
- Html-寫法
- model-寫法
- 繼承類登錄
- 外鍵關聯登錄
- django-簡單的student 管理案例
- app-urls.py
- app-models.py配置
- admin-admin.py配置
- app-form.py 和數據庫關聯的寫法
- app-FBV_views.py
- app-CBV_views.py
- templates-index.html
- django-博客系統
- APP目錄-models.py 創建
- APP目錄-基礎展示數據分析
- APP目錄-基礎數據展示cls
- ListView
- DetailView
- FormView
- 額外功能拓建
- 添加文章搜索/用戶文章查詢功能
- 增加一個友情鏈接
- 增加一個評論模塊
- App-利用Bootstrap4 搭建樣式
- 項目crm
- 思維導圖
- perfectCRM-項目名字
- settings.py-配置
- view.py-登陸/登出函數
- crm-app文件
- model.py-表的創建
- admin.py-注冊后臺
- view.py-視圖層
- static-靜態文件
- css
- bootstrap.min.css
- dashboard.css
- ie10-viewport-bug-workaround.css
- signin.css
- fonts
- imgs
- js
- jquery.js
- bootstrap.min.js
- holeder.js
- ie10-viewport-bug-workaround.js
- ie-emulation-modes-warning.js
- plugins
- html模板文件-templates
- crm
- index.html-首頁模板