Flask SQLAlchemy 无法连接到数据库

Posted

技术标签:

【中文标题】Flask SQLAlchemy 无法连接到数据库【英文标题】:Flask SQLAlchemy Can't Connect to Database 【发布时间】:2021-11-02 12:46:18 【问题描述】:

我有一个应用程序正在尝试连接到 SQLite 数据库。我将 db 文件与应用程序放在同一目录中,但是当我向 create_all 发出命令时,出现以下错误:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) 无法 打开数据库文件(此错误的背景位于: https://sqlalche.me/e/14/e3q8)

这是我正在使用的代码的 sn-p。

    app.config['SECRET_KEY'] = 'dont look at me im a secret'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////C:/Users/me/PycharmProjects/thisproject/database.db'
    app.config['CSRF_ENABLED'] = True
    app.config['USER_ENABLE_EMAIL'] = False
    
    db = SQLAlchemy(app)
    
    
    class User(db.Model, UserMixin):
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(50), nullable=False, unique=True)
        password = db.Column(db.String(255), nullable=False, server_default='')
        active = db.Column(db.Boolean(), nullable=False, server_default='0')
    
    
    user_manager = UserManager(app, db, User)

【问题讨论】:

这能回答你的问题吗? SQLAlchemy engine absolute path URL in windows 出于某种原因,我将我的应用程序命名为 main 并且它导致了与此相关的问题。所以是的,这行得通 那么,修复实际上是更改您的应用程序名称以使数据库连接正常工作?还是您还必须更改路径? 两者,我先改变了路径,得到了同样的错误。一旦我将我的应用重命名为“应用”,我就可以让它工作。 【参考方案1】:

我相信truth 在这里有所作为。 看来您没有正确指定 sqlite 数据库的路径。

您的路径应如下所示:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\Users\\me\\PycharmProjects\\thisproject\\database.db'

【讨论】:

我更新了路径,我得到了同样的错误。实际上,我在许多修订中都有这个,试图让它发挥作用,哈哈【参考方案2】:

我必须将我的应用程序文件名更改为“app.py”,然后按如下方式更新数据库的路径:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\Users\\me\\PycharmProjects\\thisproject\\database.db'

为了让它工作

【讨论】:

以上是关于Flask SQLAlchemy 无法连接到数据库的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:使用flask-sqlalchemy连接到sqlite数据库时无法设置属性

Flask SQLalchemy 无法使用 Unix 套接字连接到 Google Cloud Postgresql 数据库

无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例

使用 Flask-SQLAlchemy 连接到 MSSQL 数据库

使用 Flask-SQLAlchemy 连接到 AWS RDS MySQL 数据库实例

如何在一段时间后更改Flask-SQLAlchemy URI?