激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Flask 入門系列 Cookie與session的介紹

Flask 入門系列 Cookie與session的介紹

2022-03-08 00:15tigeriaf Python

這篇文章主要給大家分享的是 Flask 入門系列 Cookie與session的介紹,下面文字圍繞 Cookie與session的相關資料展開詳情,需要的朋友可以參考一下,希望對大家有所幫助

Flask 入門系列 Cookie與session的介紹

一、Cookie的使用

1、什么是Cookie

我們都知道,HTTP 協議是無狀態的,也就是說,在一次請求響應結束后,服務端不會保留任何對方狀態的信息,對于某些需要保留的信息,可以通過 Cookie 技術來完成,通過在請求和響應報文中添加 Cookie 數據來保存客戶端的狀態信息。

Web 服務器為了存儲某些數據(比如用戶信息) 而保存在瀏覽器上的小型文本數據,瀏覽器會在一定時間內保存它,在下次向該服務器發送請求時附帶這些數據,Cookie 通常被用來進行用戶會話管理(比如用戶的登錄狀態),保存用戶的一些信息。

2、在Flask中使用Cookie

Flask 中,如果想要在響應中添加一個 cookie,可以使用 response 對象的set_cookie()方法。

set_ cookie()方法的參數如下:

  • keycookie 鍵名
  • valuecookie
  • max_agecookie 被保存的時間,單位:秒
  • expires:具體的過期時間
  • path:限制 cookie 可用的路徑,默認為整個域名
  • domaincookie 可用的域名
  • secure:設置為 True,只有通過 HTTPS 才可使用
  • httponly:設置為True,禁止客戶端 js 獲取 cookie

具體使用如下:

?
1
2
3
4
5
6
7
8
9
@app.route('user/<name>')
 
def user(name):
 
    response = make_response('hello {}'.format(name), 200)
 
    response.set_cookie("name", name)
 
    return response

Flask 中,Cookie 可以通過 request 請求對象 cookies 屬性獲取。

?
1
2
3
4
5
6
7
8
9
10
11
@app.route('/hello')
 
def hello():
 
    user = request.args.get('name')
 
    if not user:
 
        user = request.cookies.get("name", 'default')
 
    return 'Hello {}!'.format(user)

二、session的使用

1、什么是session

session 指用戶會話,會話可以用來保存當前請求的一些狀態,以便于在請求之前共享信息。session是存儲在服務端的,通過唯一標識區分用戶 session,即 session id,一般情況下,session id 是存在 Cookie 中的,服務端可以獲取 Cookie 中的 session id 來獲取用戶 session。

2、Flask中的session對象

我們了解了 Cookie 最重要的功能是用來保存客戶端用戶的狀態信息。但是存在這樣一個問題,Cookie 是保存在客戶端的,在瀏覽器中可以輕易的添加和修改 Cookie,而且如果把用戶的狀態信息以明文的方式存儲在 Cookie 里的話,那么就可以通過偽造 Cookie 信息來偽造別人的用戶信息,從而獲取一些權限。為了避免這個問題,我們要對敏感的 Cookie 內容進行加密。Flask 提供了 session 對象就是用來將 Cookie 數據加密存儲的。

3、在Flask中使用session

session 需要通過密鑰對數據進行簽名以加密數據,因此,需要先設置一個密鑰app.secret_key,這里設置的密鑰只是一個簡單示例,在生產環境中,必須要隨機生成的密鑰,保證秘鑰的復雜度度和隨機性,才更安全。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 設置密鑰
 
app.secret_key = 'qwertyuiop'
 
@app.route('/user', methods=['POST', 'GET'])
 
def user():
 
    if request.method == 'POST':
 
        user = request.form['user_name']
 
        session['user_name'] = request.form['user_name']
 
        return 'Hello {}!'.format(user)
 
    else:
 
        if 'user_name' in session:
 
            return 'Hello {}!'.format(session["user_name"])

session 對象的使用就跟字典一樣,如上,用戶使用POST請求登錄后,在 session 中保存用戶名,下次再使用GET請求時,不傳遞任何信息,也可以在 session 中獲取該用戶的信息。

想要清除 session 指定信息的話,例如用戶名,可以使用 session.pop("user_name", None),清除全部的話可以使用session.clear()。

到此這篇關于 Flask 入門系列 Cookie與session的介紹的文章就介紹到這了,更多相關 Flask  Cookie與session內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://juejin.cn/post/7030627770677854245

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 97se亚洲综合在线韩国专区福利 | 国产成人精品午夜 | 欧美日韩免费一区 | 成人男女视频 | 亚洲成人在线视频网 | 色诱亚洲精品久久久久久 | 美女亚洲综合 | 姑娘第四集免费看视频 | 狼网 | 亚洲最大中文字幕 | 欧美一区二区黄 | 久久成人精品视频 | 日本娇小videos高潮 | 久久久三级免费电影 | 欧美性猛交xxx乱大交3蜜桃 | 国产亚洲欧美视频 | 精品国产乱码一区二区三区四区 | 污视频在线免费 | 双性精h调教灌尿打屁股的文案 | 一区二区三区日韩 | 久久精品高清 | 色诱亚洲精品久久久久久 | 久久久久久久久国产精品 | 国产一区二区在线免费播放 | 久久99精品久久久久久小说 | 欧美日韩中文字幕在线视频 | 亚洲一区二区三区日本久久九 | 午夜国产福利 | 国产成人高清在线观看 | 九九久久视频 | 国产精品久久久久久久亚洲按摩 | 爽妇网国产精品 | 国产成人精品二区 | 久久91亚洲精品久久91综合 | 中国大陆高清aⅴ毛片 | 国产一有一级毛片视频 | 成人福利在线 | 免费看国产 | 欧美成人鲁丝片在线观看 | 中日韩免费视频 | 在线观看免费污视频 |