如何获取Sanic内存会话的会话ID并传递给Twilio?
获取Sanic内存会话的会话ID
你可以直接通过request.ctx.session_id属性获取当前会话的ID,这个属性是Sanic Session扩展自动设置的。
关键说明
当你首次访问request.ctx.session(哪怕只是读取而非写入数据),Sanic会自动生成会话ID并绑定到request.ctx.session_id上,无需额外手动生成。
完整代码示例
from sanic import Sanic, Request from sanic_session import Session, InMemorySessionInterface app = Sanic.get_app() Session(app, interface=InMemorySessionInterface()) @app.get("/send-to-twilio") async def send_session_id(request: Request): # 存储会话数据 request.ctx.session['foo'] = 'bar' # 获取会话ID session_id = request.ctx.session_id # 将会话ID传入模板(这里以常用的模板渲染场景为例) return await request.app.ctx.template.render("twilio_template.html", session_id=session_id)
注意事项
- 确保在获取
session_id之前已经访问过request.ctx.session,否则session_id会返回None - 内存会话的ID是Sanic Session自动生成的随机字符串,无需你手动处理生成逻辑
内容的提问来源于stack exchange,提问作者Foobar
相关产品推荐
相关产品推荐

