我正在按照教程学习在使用 python 和 Flask 时使用 mysql,在教程中我们实现了一些模块并设置了连接,我们还使用终端设置了一些变量,目前我尝试使用我们使用一些模块设置的命令会在终端中抛出该错误。
这是我的初始化文件
from flask import Flask
def create_app(): # nos ayudara a crear varias instancias de nuestrsa aplicacion
app = Flask(__name__)
app.config.from_mapping(
SECRET_KEY = 'mikey', #esta llave se enviara al cliente para usarla como referencia con datos que se encuentran guardados en el servidor y es conocido como cookie
DATABASE_HOST = os.environ.get('FLASK_DATABASE_HOST'),
DATABASE_PASSWORD = os.environ.get('FLASK_DATABASE_PASSWORD'),
DATABASE_USER = os.environ.get('FLASK_DATABASE_USER'),
DATABASE = os.environ.get('FLASK_DATABASE')
)
from . import db
db.init_app(app)
@app.route('/')
def test():
return 'Hello Friend'
return app
这是我的数据库配置
import mysql.connector
import click
from flask import current_app, g
from flask.cli import with_appcontext
from .schema import instructions
def get_db():
if 'db' not in g:
g.db = mysql.connector.connect(
host = current_app.config['DATABASE_HOST'],
user = current_app.config['DATABASE_USER'],
password = current_app.config['DATABASE_PASSWORD'],
database = current_app.config['DATABASE']
)
g.c = g.db.cursor(dictionary=True)
return g.db, g.c
def close_db(e=None):
db = g.pop('db', None)
if db is not None:
db.close()
def init_db():
db, c = get_db()
for i in instructions:
c.execute(1)
db.commit()
@click.command('init-db')
@with_appcontext
def init_db_command():
init_db()
click.echo('Base de datos inicializada')
def init_app(app):
app.teardown_appcontext(close_db)
app.cli.add_command(init_db_command)
这些是变量
set FLASK_DATABASE_HOST='localhost'
set FLASK_DATABASE_USER='nword'
set FLASK_DATABASE_PASSWORD='%2.-[NX^X?FpncFD'
set FLASK_DATABASE='flask_database'