Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Database Flask:查询结果未使用jinja(用户数据)显示在网页上_Database_Sqlite_Flask_Module_Jinja2 - Fatal编程技术网

Database Flask:查询结果未使用jinja(用户数据)显示在网页上

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

我有一个相当基本的烧瓶设置(一直使用升华文本编码)。出于测试目的,我现在尝试运行以下.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():
        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中安装的不同。它现在可以正确地打印查询结果

什么仍然不起作用:

  • 我是否在设置或代码中有错误?网页上未显示用户_数据
  • 在home.html中(在模板中)

    {{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版本和虚拟环境之间的混合

    • (我关于其他主题的回答:看一下关于配置环境变量的部分)


    也许此线程可以帮助youthanks-但它与缺少IDLE的Edit无关。这根本不是问题所在——不过我会看一看。:)我解决了运行(导入部分)-但查询不工作谢谢你-我会考虑和投票。我对这个问题做了一个修改来澄清。查询肯定是在生成数据。它只是没有显示在网页上。因此,在home.html页面中用作{{user_data}}的用户_数据不会显示/
    [..]
    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
    
    [..]