Flask中的cookie和session

from flask import Flask
app = Flask(__name__)

一.cookie

from flask import Flask, make_response, request
@app.route('/')
def hello():
    response = make_response('ok')    #先要建立一個response對象
    response.set_cookie('key','value')  #用set_cookie設置cookies
    cookies = request.cookies #獲取全部cookies且以字典的形式的返回
    cookies_key = request.cookies['key']  #由於返回是cookies的字典對象因此咱們能夠用字典取值取出指定的cookie
    return response

二.session

用以前必須先設置祕鑰

app.secret_key="asdas" #值隨便html

使用

from flask import Flask, make_response, request,session
app.config['SESSION_COOKIE_NAME']="session_key"  #這是配置網頁中sessions顯示的key
@app.route('/')
def hello():
    session['username'] = 'xxx'  #設置
    #session自己就是個字典至關於把一個username:xxx鍵值對丟進去,而後Flask會把整個字典結合secret_key進行加密
    #1.生成一個隨機的字符串 
    #2 往數據庫存 
    #3 寫入cookie返回瀏覽器
    sessions = session #獲取全部session
    session_username =session['username'] #獲取指定session
    session.pop('username')  #刪除session原理和字典的刪除方式同樣
    return 'ok'

設置cookie的參數

key, 鍵
value='', 值
max_age=None, 超時時間 cookie須要延續的時間(以秒爲單位)若是參數是\ None`` ,這個cookie會延續到瀏覽器關閉爲止
expires=None, 超時時間(IE requires expires, so set it if hasn't been already.)
path='/', Cookie生效的路徑,/ 表示根路徑,特殊的:根路徑的cookie能夠被任何url的頁面訪問,瀏覽器只會把cookie回傳給帶有該路徑的頁面,這樣能夠避免將cookie傳給站點中的其餘的應用。
domain=None, Cookie生效的域名 你可用這個參數來構造一個跨站cookie。如, domain=".example.com"所構造的cookie對下面這些站點都是可讀的:www.example.com 、 www2.example.com 和an.other.sub.domain.example.com 。若是該參數設置爲 None ,cookie只能由設置它的站點讀取
secure=False, 瀏覽器將經過HTTPS來回傳cookie
httponly=False 只能http協議傳輸,沒法被JavaScript獲取(不是絕對,底層抓包能夠獲取到也能夠被覆蓋)

這些參數全都再app.config中進行設置python

'SESSION_COOKIE_NAME':                  'session',
        'SESSION_COOKIE_DOMAIN':                None,
        'SESSION_COOKIE_PATH':                  None,
        'SESSION_COOKIE_HTTPONLY':              True,
        'SESSION_COOKIE_SECURE':                False,
        'SESSION_REFRESH_EACH_REQUEST':         True,

詳細能夠參照:https://www.cnblogs.com/pythonywy/p/11594420.html數據庫

相關文章
相關標籤/搜索