Python 烧瓶错误 app.run
Python flask error with app.run
我是 Python Flask 的新手。
如果没有 app.run()
,我的 Flask_app.py 能够 运行 但是当我放置它时显示错误。我目前 运行 在 pythonanywhere.com
from flask import Flask,jsonify,abort,make_response
import MySQLdb
import MySQLdb.cursors
app = Flask(__name__)
db = MySQLdb.connect(host='venus.mysql.pythonanywhere-services.com',user='venus',passwd='pw',db='venuspp$default',cursorclass=MySQLdb.cursors.DictCursor)
@app.route('/')
def hello_world():
return 'Hello from bybye!'
@app.route('/KL', methods=['GET'])
def KL():
curs = db.cursor()
try:
curs.execute("SELECT * FROM KL")
a = curs.fetchall()
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'venus': a})
if __name__ == '__main__':
app.run()
错误如下:
* Running on http://127.0.0.1:5000/
Traceback (most recent call last):
File "/home/vinus/mysite/flask_app.py", line 49, in <module>
app.run()
File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 710, in run_simple
inner()
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 692, in inner
passthrough_errors, ssl_context).serve_forever()
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 486, in make_server
passthrough_errors, ssl_context)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 410, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File "/usr/lib/python3.4/socketserver.py", line 430, in __init__
self.server_bind()
File "/usr/lib/python3.4/http/server.py", line 133, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.4/socketserver.py", line 444, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
- 如果没有 app.run(),我的脚本是否正确且可靠?我会每天更新我的数据库。我不想让它坏掉。
- 我该怎么做才能更正错误?
Pythonanywhere 运行 flask 应用程序通过 wsgi 配置,所以它 运行 适合你,如果你检查你的 /var/www/username_pythonanywhere_com_wsgi.py
你会看到如下内容:
import sys
# add your project directory to the sys.path
project_home = u'/home/username/project_name'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
# import flask app but need to call it "application" for WSGI to work
from yourappmodule import app as application
#app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello!'
因此您的应用程序在没有 app.run()
的情况下也能完美运行
我建议检查:
How to Run a Flask Application
并且 case 坚持不遵循“flask 运行”路径,检查:
(这个 material 已经在 Stack Overflow 上了,只是把链接放在这里以帮助正在寻找答案的人)。
我是 Python Flask 的新手。
如果没有 app.run()
,我的 Flask_app.py 能够 运行 但是当我放置它时显示错误。我目前 运行 在 pythonanywhere.com
from flask import Flask,jsonify,abort,make_response
import MySQLdb
import MySQLdb.cursors
app = Flask(__name__)
db = MySQLdb.connect(host='venus.mysql.pythonanywhere-services.com',user='venus',passwd='pw',db='venuspp$default',cursorclass=MySQLdb.cursors.DictCursor)
@app.route('/')
def hello_world():
return 'Hello from bybye!'
@app.route('/KL', methods=['GET'])
def KL():
curs = db.cursor()
try:
curs.execute("SELECT * FROM KL")
a = curs.fetchall()
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'venus': a})
if __name__ == '__main__':
app.run()
错误如下:
* Running on http://127.0.0.1:5000/
Traceback (most recent call last):
File "/home/vinus/mysite/flask_app.py", line 49, in <module>
app.run()
File "/usr/local/lib/python3.4/dist-packages/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 710, in run_simple
inner()
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 692, in inner
passthrough_errors, ssl_context).serve_forever()
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 486, in make_server
passthrough_errors, ssl_context)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 410, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File "/usr/lib/python3.4/socketserver.py", line 430, in __init__
self.server_bind()
File "/usr/lib/python3.4/http/server.py", line 133, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.4/socketserver.py", line 444, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
- 如果没有 app.run(),我的脚本是否正确且可靠?我会每天更新我的数据库。我不想让它坏掉。
- 我该怎么做才能更正错误?
Pythonanywhere 运行 flask 应用程序通过 wsgi 配置,所以它 运行 适合你,如果你检查你的 /var/www/username_pythonanywhere_com_wsgi.py
你会看到如下内容:
import sys
# add your project directory to the sys.path
project_home = u'/home/username/project_name'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
# import flask app but need to call it "application" for WSGI to work
from yourappmodule import app as application
#app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello!'
因此您的应用程序在没有 app.run()
我建议检查: How to Run a Flask Application
并且 case 坚持不遵循“flask 运行”路径,检查:
(这个 material 已经在 Stack Overflow 上了,只是把链接放在这里以帮助正在寻找答案的人)。