我希望Python Flask从配置文件中读取sqlite3数据库名称的位置而不明确写入数据库名称。使用的模板是:http://flask.pocoo.org/docs/0.11/patterns/sqlite3/和http://flask.pocoo.org/docs/0.11/tutorial/dbcon/。Flask blueprint无法从配置文件中读取sqlite3数据库
当我尝试从我的配置文件我得到以下错误消息读“数据库”:
文件“/应用程序/ my_cool_app /应用/ 初始化 py”为42行,在before_request g^.db的= connect_db()
文件 “/应用/ my_cool_app /应用/ 初始化 py” 为36行,在connect_db 返回sqlite3.connect(my_cool_app.config [ 'DATABASE'])
AttributeError:'Blueprint'对象具有没有属性“配置”
这里是我的初始化的.py代码时,我尝试从配置文件读取,并得到上述错误:
import sqlite3
from flask import Flask, g
from .views import my_cool_app
# create application
def create_app(debug=True):
app = Flask(__name__, instance_relative_config=True)
app.debug = debug
app.config.from_object('config')
app.config.from_pyfile('config.py')
app.register_blueprint(my_cool_app)
return app
def connect_db():
return sqlite3.connect(my_cool_app.config['DATABASE']) <= LINE 36
@my_cool_app.before_request
def before_request():
g.db = connect_db()
@my_cool_app.teardown_request
def teardown_request(exception):
db = getattr(g, 'db', None)
if db is not None:
db.close()
这是我run.py(我不T改变它):
from app import create_app
app = create_app()
这里是我的初始化的.py代码时,我明确写入数据库名称(不是我想要的作品):
import sqlite3
from flask import Flask, g
from .views import my_cool_app
DATABASE='/app/myappname/my_sqlite3_database_name.db'
# create application
def create_app(debug=True):
app = Flask(__name__, instance_relative_config=True)
app.debug = debug
app.config.from_object('config')
app.config.from_pyfile('config.py')
app.register_blueprint(my_cool_app)
return app
def connect_db():
return sqlite3.connect(DATABASE)
非常感谢你Phillip Tzou!是的,我导入了current_app,现在它按预期工作。 – user1356863