python - For loop in Jinja2 splitting the chars in nested list, instead of returning whole of nested list
问题描述
My doubts list is [['a','b','This is a sentence']] My HTML (Jinja) is
{% for x in doubts %}
{{ x }}
{% endfor %}
My Flask is :-
connection = mysql.connector.connect(host='127.0.0.1',database='wizlearn',user='root',password='pokemon2345')
cursor = connection.cursor(buffered=True)
login = session['login']
admission_no = login[4]
cursor.execute('SELECT * FROM doubts WHERE student = {0}'.format(admission_no))
result = json.dumps(list(cursor.fetchall()))
app.logger.debug(result)
cursor.close()
connection.close()
return render_template('doubt_history.html', doubts=result)
x is giving a,b,T,h,i,s,i,s,a,s,e,n,t,e,n,c,e
[Each char one iteration]
I expected a,b,
This is a sentence. [Only one iteration]
How do I resolve this? Thanks in advance!
解决方案
由于某种原因,您已将输出转储到 json。不要那样做。将值cursor.fetchall()
直接传递给模板。
此外,永远不要通过字符串插值将用户输入或任何数据直接传递到 SQL 查询中;这使您面临 SQL 注入攻击。始终使用参数:
cursor.execute('SELECT * FROM doubts WHERE student = %s', (admission_no))
(您还没有说您使用的是什么数据库,如果您使用的是 sqlite,则需要使用?
而不是%s
那里。)
推荐阅读
- python - 每次我将代码提交到 google codejam 2020 时都会出现运行时错误
- angular - 如何使用带有角度的laravel将产品添加到购物车
- python - 三个数中最小的一个
- python - PyInstaller 不包括导入
- javascript - ejs 错误:找不到“<%-”的匹配结束标记
- jenkins-x - jx 引导在步骤上失败:无法在目录 'workspace\source' 中运行 '/bin/sh -c jx step git validate' 命令,输出:''
- python - 在 Mac OS X 上使用 Conda 安装 pyzbar 时出错
- c# - 如何确保我的任务知道主线程上设置的标志?
- flutter - 当主题在颤动中更改时,文本颜色将变为白色或黑色
- reactjs - 无法设置复选框的选中状态