hello everyone
I am a novice in sanic, and I want to bind an object of a request instance to a view class. What should I do?
I am accustomed to writing class based views, similar to the following
from sanic.views import HTTPMethodView
class BaseView(HTTPMethodView):
@property
def db(self):
#TODO returns the ctx.session object of the current request instance here
pass
async def do_ something(self):
await self.db.query..........
The following is the request middleware section
_ base_ model_ session_ ctx = ContextVar("session")
async def inject_ session(request):
request.ctx.session = ConnectionAsync(**kwargs )
request.ctx.session_ ctx_ token = _ base_ model_ session_ ctx.set(request.ctx.session)
“I can use the request.ctx.session object operation in class view functions, but I prefer to be able to directly use self.db to point to the current session object in all views that inherit from the baseview class.”.
How can I do this in this situation? Or is there a better way?