我不确定这是否是flask 特定的问题,或者我是否只是缺乏对python 导入机制的了解,但我在flask web 应用程序方面遇到了一些问题。这是我的应用程序的布局:
/myapp
/INSTALL
/TODO
/run.py
/instance
/application.cfg
/myapp
/static
/templates
/__init__.py
/config.py
/service.py
Run Code Online (Sandbox Code Playgroud)
config.py 文件存储默认应用配置,application.cfg 存储实例配置。他们俩看起来像这样:
DEBUG = False
TESTING = False
SECRET_KEY = "please_replace_me"
Run Code Online (Sandbox Code Playgroud)
这是我在init .py 中设置应用程序的方式:
import flask
app = Flask(__name__, instance_relative_config=True)
app.config.from_object("myapp.config")
app.config.from_pyfyle("application.cfg", silent=True)
Run Code Online (Sandbox Code Playgroud)
现在我想要的是从 service.py 访问 app.config 对象,它不包含在init .py 或作为 Web 应用程序一部分的任何其他模块中。即这是我希望我的 service.py 文件读取的方式:
from somewhere.somehow import app
def run():
do_stuff(app.config["CONFIG_OPTION"])
Run Code Online (Sandbox Code Playgroud)
问题是 service.py 文件必须在包内,所以我不能将它向上移动一个文件夹而只导入 myapp。我该怎么做呢?
如果要导入位于父目录中的模块,一种可能的方法是在导入之前将父目录添加到 sys.path 中:
cmd_folder = os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe() ))[0])
sys.path.append(cmd_folder+'/../')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4138 次 |
| 最近记录: |