You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库错误求助:Could not parse rfc1738 URL from string

解决SQLAlchemy的"Could not parse rfc1738 URL from string"错误

这个问题很常见,根源在于你给SQLAlchemy的数据库URI格式不符合它的要求。SQLite的连接URL需要带特定的协议前缀,直接写本地文件路径是不行的。

修正后的数据库配置代码

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:/dev/FlaskBlog/blog.db'
db = SQLAlchemy(app)

class Blogpost(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(50))
    subtitle = db.Column(db.String(50))
    author = db.Column(db.String(20))
    date_posted = db.Column(db.DateTime)
    content = db.Column(db.Text)

为什么这样改?

SQLAlchemy要求所有数据库URL都遵循RFC1738标准,对于SQLite本地文件,必须以sqlite:///开头(三个斜杠),后面跟上你的文件绝对路径。你之前直接写C:/dev/FlaskBlog/blog.db,没有协议前缀,SQLAlchemy无法识别这是一个合法的数据库连接URL,所以抛出了解析错误。

如果你的blog.db文件放在项目根目录下,用相对路径会更方便,不需要写完整的绝对路径:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db'

额外提醒

你的addpost路由逻辑本身没什么问题,但要确保在运行代码前已经通过db.create_all()创建了数据库表(可以在应用初始化的时候调用,比如在if __name__ == '__main__':块里执行),不然提交数据时会报表不存在的错误。

内容的提问来源于stack exchange,提问作者AlucardSama04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:31:48