Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 “如何修复”&引用;属性错误:';非类型';对象没有属性';app&x27;_Python_Mysql_Flask - Fatal编程技术网

Python “如何修复”&引用;属性错误:';非类型';对象没有属性';app&x27;

Python “如何修复”&引用;属性错误:';非类型';对象没有属性';app&x27;,python,mysql,flask,Python,Mysql,Flask,我是新的网络框架,我试图做一个简单的项目。我想在html页面上显示MySQL数据,但是我一直得到这个AttributeError:“NoneType”对象没有属性“app” 我已经研究过其他的解决方案,但我似乎不知道我做错了什么。任何帮助都将不胜感激。我确实运行了以下代码: TEST.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, Wor

我是新的网络框架,我试图做一个简单的项目。我想在html页面上显示MySQL数据,但是我一直得到这个AttributeError:“NoneType”对象没有属性“app”

我已经研究过其他的解决方案,但我似乎不知道我做错了什么。任何帮助都将不胜感激。我确实运行了以下代码:

TEST.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

print(hello_world())
这一切都很顺利

python代码

import mysql.connector
from flask import Flask, render_template
app = Flask(__name__)

hostname = ''
username = ''
password = ''
database = ''

#run query on a database
@app.route('/')
def doQuery(conn):
    cur = conn.cursor()
    query = "SELECT * FROM maxes"
    cur.execute(query)

    data = cur.fetchall()

    return render_template("weightlifting.html", data=data)

print("Using mysql.connector")
myConnection = mysql.connector.connect(host=hostname, user=username, password=password, db=database)
doQuery(myConnection)
myConnection.close()
这是我得到的错误:

Using mysql.connector
Traceback (most recent call last):
  File "database.py", line 24, in <module>
    doQuery(myConnection)
  File "database.py", line 20, in doQuery
    return render_template("weightlifting.html", data=data)
  File "C:\Users\kbb_n\Anaconda3_2\lib\site-packages\flask\templating.py", line 133, in render_template
    ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'
使用mysql.connector
回溯(最近一次呼叫最后一次):
文件“database.py”,第24行,在
doQuery(myConnection)
doQuery中第20行的文件“database.py”
返回渲染模板(“weightiving.html”,data=data)
文件“C:\Users\kbb\u n\Anaconda3\u 2\lib\site packages\flask\templating.py”,第133行,位于render\u模板中
ctx.app.update\u模板\u上下文(上下文)
AttributeError:“非类型”对象没有属性“应用”

通常,您不应该直接调用路由函数

您的
hello\u world
测试恰好正常工作,因为该视图返回一个简单字符串


但是,
doQuery
视图返回一个模板呈现,它更复杂,需要一个实际的web请求上下文,当您直接调用该函数时,它就不存在了。

在Google的AppEngine上运行Python代码时,我遇到了类似的错误。解决方案是使用
app.config.update()
指定服务器。我使用
SERVER\u NAME
来执行此操作:

app.config.update(
    SERVER_NAME = "127.0.0.1:8080"
)
可能重复的