【问题标题】:For loop in Jinja2 splitting the chars in nested list, instead of returning whole of nested listJinja2中的for循环拆分嵌套列表中的字符,而不是返回整个嵌套列表
【发布时间】:2019-08-20 07:49:55
【问题描述】:

我的疑惑列表是[['a','b','This is a sentence']] 我的 HTML (Jinja) 是

{% for x in doubts %}
{{ x }}
{% endfor %}

我的烧瓶是:-

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 给出a,b,T,h,i,s,i,s,a,s,e,n,t,e,n,c,e [每个字符一次迭代]

我期待a,b,这是一个句子。 [只有一次迭代]

我该如何解决这个问题? 提前致谢!

【问题讨论】:

    标签: python sql flask multidimensional-array jinja2


    【解决方案1】:

    由于某种原因,您已将输出转储到 json。不要那样做。将cursor.fetchall() 的值直接传递给模板。

    此外,永远不要通过字符串插值将用户输入(或任何数据)直接传递到 SQL 查询中;这使您面临 SQL 注入攻击。始终使用参数:

    cursor.execute('SELECT * FROM doubts WHERE student = %s', (admission_no))
    

    (您还没有说您使用的是什么数据库,如果您使用的是 sqlite,则需要在那里使用? 而不是%s。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2022-12-15
      • 2020-03-04
      相关资源
      最近更新 更多