Sanic二十九:Sanic 擴展之sanic-session的使用


 

與flask一樣,sanic也有一些自己的擴展,雖然生態不夠強大,但基本使用足夠了

 

sanic_session:用於保持會話,當用戶登錄過后,可以將用戶數據存到sanic_session里面,以后就可以從sanic_session里面取用戶信息,判斷用戶是否登錄過了

sanic_session官方文檔:https://sanic-session.readthedocs.io/en/latest/

 

安裝:pip install sanic_session

 

sanic_session提供了很多個模塊,基本都是和一些內存數據庫之間的交互信息的處理,這些很少使用,講點實際的

 

使用sanic_session

 

未綁定狀態:app.ctx是一個空對象

綁定后:app.ctx會有一個名為session的字典

 

后面就可以把想要共享或者儲存的數據都存在這個session中,要用的時候取出來即可

 

from sanic import Sanic, response
from sanic.views import HTTPMethodView
from sanic_session import Session

app = Sanic(__name__)

Session(app)


class UserView(HTTPMethodView):

async def get(self, request):
""" 檢查登錄狀態 """
user = request.ctx.session.get(request.args.get('user_name'))
if user:
return response.json({'code': 200, 'message': '用戶已登錄', 'user': user})
return response.json({'code': 400, 'message': '用戶未登錄', 'user': user})

async def post(self, request):
""" 模擬登錄 """
request.ctx.session[request.json.get('user_name')] = request.json
return response.json({'code': 200, 'message': '登錄成功'})


app.add_route(UserView.as_view(), '/user')
if __name__ == '__main__':
import uvicorn

uvicorn.run('test:app', host='0.0.0.0', port=8000, debug=True)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM