2016-12-30 2 views
0

저는 Python Flask를 처음 사용합니다. app.run()없이 Flask_app.py를 실행할 수 있지만 넣을 때 오류가 표시됩니다. 나는 현재 다음과 같이 pythonanywhere.comapp.run의 Python flask 오류

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 
  1. 이 경우 app.run없이 내 스크립트가 정확하고 견고()? 나는 매일 데이터베이스를 업데이트 할 것이다. 나는 그것을 깨고 싶지 않아.
  2. 오류를 수정하려면 어떻게해야합니까? WSGI 구성을 통해
+2

또 다른 프로세스 (다른 스크립트를 실행 중일 수도 있음)는 정확한 포트를 사용하여 응용 프로그램을 실행하려고 시도합니다. – Arman

+0

app.run()이 없으면 내 스크립트에 문제가 있습니까? – vindex

+0

'app.run (port = 8080)'또는 다른 것을 사용하려고하면 8000이 사용 중일 수 있습니다. –

답변

3

Pythonanywhere 실행 플라스크 응용 프로그램, 그래서 당신이 확인할 경우 /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()