在Flask中设置MySQL-connector-Python

时间:2018-09-14 03:08:32

标签: python mysql flask mysql-connector-python

所以我将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配置键中这样做,是否需要重新声明主机和用户?

0 个答案:

没有答案