2012-12-02 4 views
2

Gunicorn을 통해 실행하려고하는 Flask 앱이 있습니다.Gunicorn이 앱 대신 404를 보여줍니다.

응용이 모듈에 위치하고 있으며, 그 소위 "인 MyModule"를 말할 수 및 mymodule/에있는 __init__.py 파일은 다음과 같습니다 : 그러나

from flask import Flask 
app = Flask(__name__) 

if __name__ == '__main__': 
    app.run() 

에 상관없이 URL, 404 오류가 반환된다 .

나는 인 MyModule 폴더에 포함 된 폴더에 Gunicorn를 실행 시도 : 나는 gunicorn -b 127.0.0.1:5000 runapp.py를 실행하여 루트에 내 디버그 파일 "runapp.py"에서 Gunicorn을 가리키는 시도

gunicorn -b 127.0.0.1:5000 mymodule:app 

을하지만 결과는 error: [Errno 48] Address already in use입니다.

내가 뭘 잘못하고 있니?

편집 : 파일 구조

/runapp.py 
/mymodule/__init__.py 
/mymodule/views.py 

runapp.py :

from mymodule import app, views 
app.run(debug=True) 

__init.py__ :

from flask import Flask 
from mymodule import views 

app = Flask(__name__) 

if __name__ == '__main__': 
    app.run() 

views.py :

from mymodule import api 
from mymodule.forms import SettingsForm 
from functools import wraps 
from flask import request, Response, render_template, redirect, url_for 

[...] 

@app.route('/') 
@requires_auth 
def dashboard(): 
    data = api.get_overview() 
    return render_template('dashboard.html', data=data) 
+0

응용 프로그램이 경로를 처리하지 않습니다. 적어도 "/"경로를 처리해야합니까? –

+0

해당 코드는 응용 프로그램의 다른 부분에 있습니다. /를 처리하는 경로가 있으며 Gunicorn없이 "python runapp.py"를 실행하면 잘 작동합니다. – phidah

+0

하지만'gunicorn mymodule : app'을 사용하고 있으므로'run'이 아니라'app'가 사용됩니다. –

답변

3

동일한 포트 (5000)가 이미 당신은 아마, 두 번 응용 프로그램을 실행 의미 다른 응용 프로그램, 바쁜 때문에 당신은 Errno 48 얻을.

404 문제는 경로 부족으로 인해 발생합니다. 경로는 views 모듈에서 가져 오지 않으므로 app에 제대로 연결되어 있지 않습니다. Flask documentation에서 : __init__.py에 전망이 플라스크의 인스턴스를 생성 후 를 가져 왔는지

Here’s an example __init__.py :

from flask import Flask 
app = Flask(__name__) 

import yourapplication.views 

And this is what views.py would look like:

from yourapplication import app 

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

알 수 있습니다.

+0

나는 그것을 얻지 않는다. 내 mymodule 폴더의 views.py에 경로 ("/")를 정의했습니다. runapp.py 통해 응용 프로그램을 실행할 때 잘 작동합니다. – phidah

+0

@phidah 경로의 소스 코드가 표시되지 않았습니다. 너? –

+0

완료 - 원래 질문입니다. – phidah