Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将变量从flask传递到html时,我做错了什么_Python_Mysql_Database_Flask_Mysql Connector Python - Fatal编程技术网

Python 将变量从flask传递到html时,我做错了什么

Python 将变量从flask传递到html时,我做错了什么,python,mysql,database,flask,mysql-connector-python,Python,Mysql,Database,Flask,Mysql Connector Python,我想写一个博客来练习烧瓶。我正在通过mysql.connector连接到mysql数据库。表名为“posts”。表包含id、标题、内容和作者列。除了jinja语法{{post.title}}没有显示title列的post titledata之外,一切都正常 我在jinja语法中或在将变量从flask传递到html时出错了吗 这是我的代码: @app.route('/posts', methods=['GET','POST']) def posts(): db = mysql.conne

我想写一个博客来练习烧瓶。我正在通过mysql.connector连接到mysql数据库。表名为“posts”。表包含id、标题、内容和作者列。除了jinja语法{{post.title}}没有显示title列的post titledata之外,一切都正常 我在jinja语法中或在将变量从flask传递到html时出错了吗

这是我的代码:


@app.route('/posts', methods=['GET','POST'])
def posts():
    db = mysql.connector.connect(host='127.0.0.1', user='shehan', password='shehan', database='blog')
    mycursor = db.cursor()
    mycursor.execute("SELECT * FROM posts")
    all_posts = mycursor.fetchall()
    
    return render_template('posts.html', ts=all_posts)
        

if __name__ == "__main__":
    app.run(debug=True)```

------------

{% for t in ts %}
    <h2>Title: {{ t.title }}</h2>
    <h3>Post: {{ t.content }}</h3>
    <p>By: {{ t.author }}</p>
{% endfor %} 
浏览器未显示任何错误。它工作正常,只是{{post.title}}数据没有显示数据库表中的文章标题。
我不明白为什么。我做错了什么?

可能是函数名与返回变量的名称相同吗?

在调试或编写包含多个移动部分的内容时,隔离这些部分很有帮助。你有一个数据库,两个路由,一个带循环和多个变量的模板,等等。把它分解成一个路由,一个简单的模板,没有循环,一个变量和硬编码的数据来呈现。如果这样做有效,那么慢慢地把东西加回去,直到它不起作用为止。如果/当它不起作用时,问一个关于简化示例的问题。我试图简化代码。我删除了代码的其他部分,但仍然{{t.titile}}没有显示数据..我很感激你试图接受我的建议,但你接受得还不够。摆脱数据库连接,使用硬编码数据。使用更简单的模板。同样,如果在最简单的情况下它不起作用,您就不知道什么不起作用了。但它仍然不起作用。可能是浏览器有问题吗?不,不是浏览器的问题。你能打印“所有帖子”并发送输出吗?是的,我能。如果我做{{t},那么浏览器输出是10,'blog post 1','this is first post','shehan'。它显示了整个表格行。但是如果我做了{{t.title}},它不会显示..因为它里面不是一个对象,而是一个元组,请尝试t[0],t[1]…m。是的,这很有效。。但是为什么我不能使用{{t.title}}我的意思是我在教程中见过t.title。你知道原因吗?可能是因为我最近安装了python,并且在较新的python版本中t.title不起作用?