所以我将MySQL用作Flask的数据库,虽然这是我的新手,但我无法对其全部进行设置。按照Flask教程的建议,我在 init .py中使用了一个应用工厂,看起来像:
def create_app(test_config=None):
app = Flask(__name__, instance_relative_config=True)
CORS(app)
app.config.from_mapping(
SECRET_KEY='dev',
DATABASE_URI='mysql://user@localhost/3306'
)
...
但是我不确定我是否正确使用了DATABASE_URI,因为在本教程中,它使用的是DATABASE = os.path.join(app.instance_path,'flaskr.sqlite')(但是显然我没有使用SQLite)。如果我在端口3306上运行MySQL服务器,则URI的格式正确吗?我是否甚至需要设置DATABASE_URI?如果我有一个单独的config.py文件,是否需要定义其他变量以使用MySQL?
此外,我有一个db.py文件,用于设置数据库,就像在本教程中一样,
import mysql.connector as mysql.connector
import click
from flask import current_app, g
from flask.cli import with_appcontext
def get_db():
if 'db' not in g:
g.db = mysql.connect(
user='user',
password='password',
host='http://localhost:3306/',
database='test'
)
return g.db
def init_db():
db = get_db()
with current_app.open_resource('scheman.sql', mode='r') as f:
db.executescript(f.read().decode('utf8'))
在.connect()函数中,如果已经在DATABASE_URI配置键中这样做,是否需要重新声明主机和用户?