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

Posted 向前走。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
讨论群:249728408

以上是关于Sanic二十九:Sanic 扩展之sanic-session的使用的主要内容,如果未能解决你的问题,请参考以下文章

Sanic二十二:Sanic + tortoise-orm 之使用aerich执行数据库迁移

python学习笔记第13章:web开发之sanic框架

python学习笔记第13章:web开发之sanic框架

Sanic八:Sanic操作cookie

异步处理的框架Sanic的使用方法和小技巧

python 异步Web框架sanic