请问以下Flask数据库配置哪里出错了呢?我是根据教程一步一步来做的:
教程: http://dormousehole.readthedocs.org/en/latest/tutorial/dbinit.html#tutorial-dbinit
#------code------ # all the imports import sqlite3 from flask import Flask, request, session, g, redirect, url_for,abort, render_template, flash from contextlib import closing # configuration DATABASE = '/tmp/flaskr.db' DEBUG = True SECRET_KEY = 'development key' USERNAME = 'admin' PASSWORD = 'default' # create our little application :) app = Flask(__name__) app.config.from_envvar('FLASKR_SETTINGS', silent = True) def connect_db(): return sqlite3.connect(app.config['DATABASE']) def init_db(): with closing(connect_db()) as db: with app.open_resource('schema.sql', mode='r') as f: db.cursor().executescript(f.read()) db.commit() #------Runing in Python IDEL------ >>> from flaskr import init_db >>> init_db() Traceback (most recent call last): File "", line 1, in File "flaskr.py", line 22, in init_db with closing(connect_db()) as db: File "flaskr.py", line 19, in connect_db return sqlite3.connect(app.config['DATABASE']) KeyError: 'DATABASE'
1、configuration不做单独文件
2、DATABASE 用绝对路径
sudo python
DATABASE = '/tmp/flaskr.db' 这行配置,确认在运行后能找到该数据库?有的话还得确认路径相对或绝对 ??
DATABASE = '/tmp/flaskr.db'应该是没有问题的。
在文件中加上这一行:
app.config.from_object(__name__)
就OK了,这行代码会从本文件加载配置。