Sie*_*cje 35 python flask python-2.7
我从http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world上了解了我的Flask项目的布局.
我有以下结构:
app/
__init__.py
views.py
forms.py
myFile.py
run.py
config.py
Run Code Online (Sandbox Code Playgroud)
在views.py,forms.py我能够使用
from config import basedir
Run Code Online (Sandbox Code Playgroud)
但是我不能在myFile.py中使用它
我补充道
import Flask
Run Code Online (Sandbox Code Playgroud)
当我修改它时,Flask Web服务器重新启动,但它没有说app/myFile.py中发现的更改重新启动它只是重新启动.
我需要做什么才能使用
from config import basedir
Run Code Online (Sandbox Code Playgroud)
在我的python文件中.__init__.py对于forms.py,我没有看到任何特殊内容.
编辑:这是我的__init__.py文件:
from flask import Flask
from config import basedir
app = Flask(__name__)
app.config.from_object('config')
from app import views
Run Code Online (Sandbox Code Playgroud)
Doo*_*beh 57
当人们谈论Flask中的配置时,他们通常会讨论将值加载到应用程序的配置中.在上面的示例中,您可能会app.config.from_object('config')在init.py文件中找到类似的内容.然后将所有配置值加载到app.config字典中.
然后在您的任何文件中,您只需导入应用程序对象即可访问该词典.我倾向于访问该app对象,from flask import current_app as app然后只是app.config['MY_SETTING']为了得到我关心的值.阅读文档中的更多内容.
mrA*_*ias 20
经过一点点摆弄(以及来自'net'的一点帮助),我可以通过更改代码以包含配置来进一步改进这一点:
app.config.from_object('config.ProductionConfig')
Run Code Online (Sandbox Code Playgroud)
这为配置提供了这种酷炫的模式:
class Config(object):
DEBUG = True
DEVELOPMENT = True
SECRET_KEY = 'do-i-really-need-this'
FLASK_HTPASSWD_PATH = '/secret/.htpasswd'
FLASK_SECRET = SECRET_KEY
DB_HOST = 'database' # a docker link
class ProductionConfig(Config):
DEVELOPMENT = False
DEBUG = False
DB_HOST = 'my.production.database' # not a docker link
Run Code Online (Sandbox Code Playgroud)
现在剩下的就是看看如何将测试配置集成到这里,但至少它感觉不那么笨拙.
| 归档时间: |
|
| 查看次数: |
53919 次 |
| 最近记录: |