我正在尝试在另一个模块中重用烧瓶中的 app 对象。
目前我的目录结构是:
/xampp/code/MenuMaster
__init__.py
menumaster
__init__.py
menumaster_app.py
sqltables.py
我的第一个__init__.py
文件包含:
app = Flask(__name__)
app.config['SECRET_KEY'] = 'some key here'
第二个__init__.py
文件为空。
menumaster_app.py
使用此应用对象。 sqltables.py
也需要使用此app对象。
这是我的.wsgi
文件:
import sys
sys.path.insert(0, 'C:/xampp/code/MenuMaster')
from menumaster_app import app as application
我目前收到.wsgi
中的错误:
File "C:/xampp/htdocs/flaskapp/flask.wsgi", line 5, in <module>
from menumaster_app import app as application
ImportError: No module named menumaster_app
如果我将flask.wsgi
文件更改为:
sys.path.insert(0, 'C:/xampp/code/Menumaster/menumaster')
我收到错误:
File "C:/xampp/htdocs/flaskapp/flask.wsgi", line 5, in <module>
from menumaster_app import app as application
File "C:/xampp/code/Menumaster/menumaster\\menumaster_app.py", line 44, in <module>
@app.route('/restaurants', methods = ['GET'])
NameError: name 'app' is not defined
如果我以错误的方式完全解决这个问题,我很乐意听到正确的方法来实现这一目标。
对此事的任何帮助都将不胜感激。
更新
我已将文件结构更改为:
menumaster_project
menumaster
__init__.py
menumaster_app.py
sqltables.py
flask.wsgi
import sys
sys.path.insert(0, 'C:/xampp/code/menumaster_project')
from menumaster import app as application
__init.py__
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = 'some key here'
但是,我目前收到404
错误。
答案 0 :(得分:1)
您的申请结构奇怪。更常见的布局是:
menumaster_project/
├─── menumaster/
│ ├── __init__.py
│ ├── sqltables.py
│ └── my_subpackage/
│ ├── __init__.py
│ └── my_submodule.py
└── other_project_file.txt
Python路径上的menumaster_project
位置。该应用将在menumaster_project/menumaster/__init__.py
中定义。导入应用程序将是:
from menumaster import app as application