在 Flask 中重用应用程序对象
Reuse app object in Flask
我正在尝试在另一个模块中的 flask 中重用 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
错误。
您的申请结构很奇怪。更常见的布局是:
menumaster_project/
├─── menumaster/
│ ├── __init__.py
│ ├── sqltables.py
│ └── my_subpackage/
│ ├── __init__.py
│ └── my_submodule.py
└── other_project_file.txt
其中 menumaster_project
将在 Python 路径上。该应用程序将在 menumaster_project/menumaster/__init__.py
中定义。导入应用程序将是:
from menumaster import app as application
我正在尝试在另一个模块中的 flask 中重用 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
错误。
您的申请结构很奇怪。更常见的布局是:
menumaster_project/
├─── menumaster/
│ ├── __init__.py
│ ├── sqltables.py
│ └── my_subpackage/
│ ├── __init__.py
│ └── my_submodule.py
└── other_project_file.txt
其中 menumaster_project
将在 Python 路径上。该应用程序将在 menumaster_project/menumaster/__init__.py
中定义。导入应用程序将是:
from menumaster import app as application