[英]Getting 404 not found on Flask app deployed on PythonAnywhere
我已經翻遍了大約 50 個不同的答案,但我仍然無法解決它......我對 flask 和 python 還是很陌生。
我有一個在本地運行良好的應用程序,但我很難在任何地方部署 python。 最初我遇到了一些導入模塊問題,現在它運行但不返回任何 html 模板,盡管沒有看到任何其他問題。 我遇到的主要問題是它無法從 wsgi 中找到“路線”應用程序,並且我修復了在 routes.py 上添加 app = Flask( name ) 行(短藍圖 object 不可調用)。
路線.py:
from flask import Blueprint, render_template, request, redirect, send_file
import pyqrcode
from pyqrcode import QRCode
import subprocess
from extensions import db
from models import Link
app = Flask(__name__)
short = Blueprint('short', __name__, url_prefix='/')
@short.route('/index')
def index():
return render_template('index.html')
初始化.py
from flask import Flask
from extensions import db
from routes import short
def create_app(config_file='settings.py'):
app = Flask(__name__)
app.config.from_pyfile(config_file)
db.init_app(app)
app.register_blueprint(short)
return app
wsgi.py
import sys
# add your project directory to the sys.path
project_home = u'/home/b297py/mysite'
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 routes import app as application
出於測試的目的,我將所有 html 模板都放在了根目錄和特定的 /template 目錄中,但這並沒有解決問題。
在 wsgi.py 中,您沒有調用create_app
,因此您永遠不會注冊藍圖。 你應該更換:
from routes import app as application
通過類似的東西:
from package_name import create_app
application = create_app()
(例如: https://www.pythonanywhere.com/forums/topic/12889/#id_post_50171 )
同樣正如您所提到的,將app = Flask(__name__)
添加到routes.py
的修復程序允許您繞過 create_app (因此,如果您想堅持使用 create_app 方法,則應將其刪除)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.