日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

基于hi-nginx的web开发(python篇)——cookie和会话管理

發布時間:2023/12/15 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于hi-nginx的web开发(python篇)——cookie和会话管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hi-nginx通過redis管理會話。

要開啟管理,需要做三件事。

第一件開啟userid:

userid on; userid_name SESSIONID; userid_domain localhost; userid_path /; userid_expires 300s;

這個功能是nginx內建的,可以直接使用。需要注意的是,hi-nginx只認識SESSIONID的userid_name。

第二件是配置redis服務器:

hi_redis_host 127.0.0.1; hi_redis_port 6379;

當然,你應該先安裝redis并確保它運行。

第三件是在location段開啟會話管理:

location / {hi_need_session on; hi_session_expires 300s; hi_python_script python/index.py; }

整個nginx配置寫下來,就是:

1 server { 2 listen 8080; 3 server_name localhost; 4 5 userid on; 6 userid_name SESSIONID; 7 userid_domain localhost; 8 userid_path /; 9 userid_expires 300s; 10 11 hi_redis_host 127.0.0.1; 12 hi_redis_port 6379; 13 14 15 location / { 16 hi_need_cache off; 17 hi_cache_expires 5s; 18 19 hi_need_session on; 20 hi_session_expires 300s; 21 hi_python_script python/index.py; 22 } 23 }

需要注意是,應該確保hi_session_expires和userid_expires的值保持一致。

配置寫完后,記得reload或者restart nginx。

?

接下來就是使用會話管理的api了。

說來太簡單,都不好意思寫出來,用req.has_session,req.get_session和res.session即可:

@app.route('^/session/?$',['GET']) def session(req,res,param):k='test'v=0if req.has_session(k):v=int(req.get_session(k))res.session(k,str(v+1))else:res.session(k,str(v))res.content('{}={}'.format(k,v))res.status(200)

?

那么,cookie怎么辦?人們使用cookie的一大用途建立會話機制。上文已經把會話管理的使用說清楚了。所以使用hi.py框架時不需要特別留意cookie的管理。當然,如果你想自己管理cookie,hi-nginx也提供req.has_cookie和req.get_cookie兩個只讀api。如果要寫api,可以使用res.header來寫。比如:

在location段中添加hi_need_cookies on

1 location / { 2 hi_need_cache off; 3 hi_cache_expires 5s; 4 hi_need_cookies on; 5 hi_need_session on; 6 hi_session_expires 300s; 7 hi_python_script python/index.py; 8 }

在操作函數中在添加相關操作:

@app.route('^/session/?$',['GET']) def session(req,res,param):k='test'v=0if req.has_session(k):v=int(req.get_session(k))res.session(k,str(v+1))else:res.session(k,str(v))cv=vif req.has_cookie(k):cv=int(req.get_cookie(k))res.header('Set-Cookie','{}={};Path={};Domain={}'.format(k,cv+1,'/','localhost'))else:res.header('Set-Cookie','{}={};Path={};Domain={}'.format(k,cv,'/','localhost'))res.content('session:{0}={1},cookie:{0}={2}'.format(k,v,cv))res.status(200)

如上所見,在hi.py中操控和管理cookie和會話是非常方便的,用來寫個登陸或者購物車什么的,配合hi.py的jinja2模板引擎,簡直易如反掌。

?

轉載于:https://www.cnblogs.com/hi-nginx/p/8667802.html

總結

以上是生活随笔為你收集整理的基于hi-nginx的web开发(python篇)——cookie和会话管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。