开发Twilio视频聊天WebApp出现jinja2 participant未定义报错求助
问题根因
你在前端模板中硬编码了引用Jinja变量{{ participant }}的参会者DIV元素,但Flask渲染模板时没有传入对应变量,且业务逻辑上也不需要提前静态渲染这段代码:所有远端参会者的DOM元素已经由JS的participantConnected函数动态创建,你多写了冗余的静态代码。
解决方案
- 删除模板冗余代码
找到container容器下的这段代码,整段删除即可:
<div id="{{ participant.sid }}" class="participant"> <div></div> <!-- the video and audio tracks will be attached to this div --> <div>{{participant.name}}</div> </div>
- 补全后端导入逻辑
你当前app.py代码中没有导入AccessToken类,运行时会触发名称错误,在文件顶部的导入部分添加一行:
from twilio.jwt.access_token import AccessToken
验证
修改完成后重启Flask服务,再次访问页面就不会抛出Jinja未定义错误,输入用户名即可正常加入视频房间,远端参会者加入时会自动生成对应的视频显示区域。
内容的提问来源于stack exchange,提问作者stan
相关产品推荐
相关产品推荐

