我在尝试运行Flask应用时遇到了下一个错误:
sqlalchemy.exc.OperationalError
OperationalError: (_mysql_exceptions.OperationalError) (1049, "Unknown database '/home/gerardo/Documentos/python_web_dev/flask-intro/app2.db'")
所以似乎没有数据库......但是我使用sqlalchemy_utils运行了下一个脚本,一切正常:
engine = create_engine("mysql://root:@localhost/home/gerardo/Documentos/python_web_dev/flask-intro/app2.db")
create_database(engine.url)
但我仍然收到错误..
答案 0 :(得分:0)
你把MySQL(数据库服务器)与SQLite(文件中的数据库)混为一谈。你创建了一个SQLite文件,但是试图告诉MySQL连接到它,这没有任何意义。
在连接字符串中使用sqlite
方言。
您可以通过指向相对于应用位置的文件来避免键入整个路径(并将应用程序绑定到该路径)。
import os
db_path = os.path.realpath(os.path.join(os.path.dirname(__file__), 'app2.db'))
engine = create_engine('sqlite://{}'.format(db_path))
考虑使用Flask-SQLAlchemy而不是尝试自己管理数据库。