我正在寫一個燒瓶站點,我不知道哪些文件應該包含我的運行,配置和設置代碼。我的目錄結構如下所示:燒瓶:需要澄清在運行,配置和設置佈局
/
dev_settings.py
run.py
various other files... (schema, production_settings, etc)
/sitename
__init__.py
various other files... (routes, models, etc)
而且dev_settings.py,run.py和__init__.py的內容如下。我對它的理解是這樣的:
- run.py是入口點。
- 它從sitename/__ init__.py中獲取應用程序對象,並從dev_settings(或production_settings)中導入配置設置。
- 在某些時候,__init__.py中的(其餘部分)設置代碼是否運行?這是代碼在兩者之間「應用=瓶(__ name__)」和「進口sitename.admin_routes」
我卻無法從__init__.py(例如,通過嘗試訪問任何自定義配置變量「打印app.config ['從dev_settings'導入的東西]「),現在我遇到了一個問題,因爲我想上傳文件,並且我無法創建和配置UploadSet,而沒有在dev_settings.py中設置的UPLOADED_IMAGES_DEST
我在哪裏錯了?爲什麼run.py的app.config在其他地方不可見?我絕對必須壓縮run.py和__init__.py嗎?我寧願讓他們分開。
dev_settings.py
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#dev_settings.py
import os
from flask.ext.uploads import IMAGES
basedir = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
TESTING = False
SECRET_KEY = 'SECRET'
DATABASE = 'dev.db'
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, DATABASE)
UPLOADED_IMAGES_DEST = 'site/images/'
UPLOADED_IMAGES_ALLOW = IMAGES
UPLOADED_IMAGES_URL = 'images/'
run.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# run.py
from flask import Flask
import socket
from sitename import app
if __name__ == '__main__':
if socket.gethostname() == 'dev_laptop':
app.config.from_object('dev_settings')
else:
app.config.from_object('prod_settings')
app.run()
__init__.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# __init__.py
from flask import Flask
from flask.ext.login import LoginManager
from flask_wtf.csrf import CsrfProtect
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.bcrypt import Bcrypt
app = Flask(__name__)
login_manager = LoginManager()
login_manager.init_app(app)
CsrfProtect(app)
db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
import sitename.admin_routes
當你輸入'站點名稱/ __ __初始化。py',它完全執行之前'run.py'恢復執行。這意味着您在初始化您的擴展後設置配置。 – dirn
如果我要移動一些設置線,讓我們說「db = SQLAlchemy(app)」到run.py中,我將如何訪問主項目中的該變量?我將無法再運行「from sitename import db」。有沒有不同的方式來導入它? – thekthuser
您可能需要查看一些[常用應用程序佈局](http://stackoverflow.com/a/14421367/978961)。 – dirn