Flask 应用在 Xampp 中返回 404

Flask app returning 404 in Xampp

我目前的文件结构如下:

/xampp/code/menumaster_project    
menumaster
    __init__.py
    menumaster_app.py
    sqltables.py

在我的 Apache httpd.conf 文件中我有:

<IfModule wsgi_module>
  <VirtualHost *:8081>
    WSGIScriptAlias /myapp C:/xampp/htdocs/flaskapp/flask.wsgi    
    <Directory C:/xampp/htdocs/flaskapp>
        Order allow,deny
        Allow from all
    </Directory>
  </VirtualHost>
</IfModule>

flask.wsgi

import sys

sys.path.insert(0, 'C:/xampp/code/menumaster_project')

from menumaster import app as application

包含我所有路线的文件是menumaster_app.py:

@app.route('/restaurants', methods = ['GET'])

我正尝试通过 http://localhost:8081/myapp/restaurantslocalhost 上访问我的应用程序,但是我收到 404 错误。

我也不确定我的应用程序应该如何知道 menumaster_app.py 是最初需要调用的主文件。

感谢您的帮助。

您需要在定义 Flask 应用程序后导入 menumaster_app,以便加载代码并注册路由。

__init__.py

# ...
app = Flask(__name__)
# ...
from menumaster import menumaster_app

一定要在将从__init__.py导入的任何对象之后导入menumaster_app,以避免循环导入。


附带说明一下,当该模块既未定义软件包 menumaster 也未定义 Flask 应用程序时,为您的视图命名 "menumaster_app" 非常令人困惑。通常,包含视图的文件称为 views.py.

这篇文章很有帮助:http://flask.pocoo.org/docs/0.10/patterns/packages/

我最终按照那里所说的做了:

menumaster
    runserver.py
    menumaster
        views.py
        sqltables.py

runserver.py

from menumaster import app
app.run(debug=True)

views.py

@app.route('/restaurants', methods = ['GET'])

__init__.py

from flask import Flask
app = Flask(__name__)
import menumaster.views

.wsgi

import sys
sys.path.insert(0, 'C:/xampp/code/menumaster')
from menumaster import app as application

希望这对某人有所帮助。