Database Flask:查询结果未使用jinja(用户数据)显示在网页上
我有一个相当基本的烧瓶设置(一直使用升华文本编码)。出于测试目的,我现在尝试运行以下.py文件。它包含一个生成数据的查询:user\u data。我正试图看看这些数据的结果是什么Database Flask:查询结果未使用jinja(用户数据)显示在网页上,database,sqlite,flask,module,jinja2,Database,Sqlite,Flask,Module,Jinja2,我有一个相当基本的烧瓶设置(一直使用升华文本编码)。出于测试目的,我现在尝试运行以下.py文件。它包含一个生成数据的查询:user\u data。我正试图看看这些数据的结果是什么 from datetime import datetime from flask import Flask, render_template, url_for import sqlite3 app = Flask(__name__) db_locale='users.db' def query_comments
from datetime import datetime
from flask import Flask, render_template, url_for
import sqlite3
app = Flask(__name__)
db_locale='users.db'
def query_comments():
connie=sqlite3.connect(db_locale)
c=connie.cursor()
c.execute("""
SELECT * FROM comments
""")
user_data=c.fetchall()
print(user_data) #CHANGE THIS TO return user_data
@app.route('/')
@app.route('/home')
def home():
user_data=query_comments() #new variable user_Data that is the result from this query
return render_template('home.html',user_data=user_data)
if __name__ == '__main__':
app.run(debug=True)
使用IDLE编辑并运行文件bigquestions.py时,会出现以下错误:
from flask import Flask, render_template, url_for
ModuleNotFoundError: No module named 'flask'
我通过在正确的python版本中打开它来解决这个问题。IDLE与venv中安装的不同。它现在可以正确地打印查询结果
什么仍然不起作用:
{{sampletext}
{{user_data}}
…但网页上未显示用户_数据。上面的数据sampletext工作正常,因此不需要渲染
我想我只是错过了一个步骤或一些代码,不知道是什么
服务器不返回任何错误第1部分已解决:如上所述。当我在IDLE中打开它时,它出现了导入错误,默认为python3.7,而venv运行的是3.8。文件现在运行正常,但第2部分-查询用户_数据的结果仍然没有打印出来。我会接受任何解释这一点/指出错误的答案 第二部分:奇怪…我想出来了,但不明白为什么它会起作用。实际上,我必须注释掉它上面的另一个函数,该函数也向home.html页面传递参数。是否不允许有多个传递参数的函数 函数def send_comments()已被注释掉。那时一切都很好 带有注释掉功能的代码
from datetime import datetime
from flask import Flask,render_template,url_for
import sqlite3
app = Flask(__name__)
db_locale='users.db'
"""
@app.route('/home')
def sendcomments():
sampletext="Responses:" #sending this as a variable to home
return render_template('home.html',sampletext=sampletext)
"""
@app.route('/')
@app.route('/home')
def home():
user_data=query_comments() #new variable user_Data that is the result from this query
return render_template('home.html',user_data=user_data)
@app.route('/about')
def about():
return render_template('about.html')
"""
@app.route('/addcomment')
def addcomment():
return render_template()
"""
def query_comments():
connie = sqlite3.connect(db_locale)
c=connie.cursor()
c.execute("""
SELECT * FROM comments
""")
userdata=c.fetchall()
return userdata
query_comments()
if __name__ == '__main__':
app.run(debug=True)
请尝试下面的代码
[..]
def query_comments():
connie = sqlite3.connect(
db_locale,
detect_types=sqlite3.PARSE_DECLTYPES
)
user_data = connie.execute("""SELECT * FROM comments""").fetchall()
connie.close()
return user_data
[..]
请参阅官方的Flask
教程主题
github
你似乎解决了第一部分,但这看起来像一个黑客不是正确的方式
您的windows
系统上似乎有两个版本的python,因此您必须设置正确的环境系统
,以避免python版本和虚拟环境之间的混合
- (我关于其他主题的回答:看一下关于配置环境变量的部分)
[..]
def query_comments():
connie = sqlite3.connect(
db_locale,
detect_types=sqlite3.PARSE_DECLTYPES
)
user_data = connie.execute("""SELECT * FROM comments""").fetchall()
connie.close()
return user_data
[..]