如何用SQLAlchemy连接SQLite Studio?Flask登录数据库配置疑问
解决Flask-SQLAlchemy连接SQLite Studio的URI配置问题
嘿,我来帮你搞定这个SQLite连接的事儿!SQLite是文件型数据库,不像MySQL需要单独的服务器,所以配置起来其实很简单,跟着下面的步骤来就行:
1. 正确配置SQLALCHEMY_DATABASE_URI
SQLite的URI格式分两种场景:
- 相对路径(推荐,数据库文件放在项目根目录):用三个斜杠,格式为
sqlite:///数据库文件名.db
比如你想创建一个叫login.db的登录数据库,配置就是:app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///login.db" - 绝对路径:用四个斜杠,适合数据库文件不在项目目录的情况
- Windows系统示例:
sqlite:////C:/my_flask_project/login.db(或者用原始字符串避免转义:r'sqlite:///C:\my_flask_project\login.db') - Linux/macOS系统示例:
sqlite:////home/user/my_flask_project/login.db
- Windows系统示例:
另外,建议加上这个配置关闭修改跟踪,避免不必要的警告:
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
2. 完整代码示例
给你一个包含用户模型的完整小例子,运行后会自动生成数据库文件:
from flask import Flask, request, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 配置SQLite数据库 app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///login.db" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False db = SQLAlchemy(app) # 定义登录用的用户表模型 class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(120), nullable=False) # 在应用上下文里创建所有表 with app.app_context(): db.create_all() if __name__ == "__main__": app.run(debug=True)
3. 用SQLite Studio连接数据库
当你运行上面的代码后,login.db文件会自动出现在你的项目根目录里。接下来用SQLite Studio打开它:
- 打开SQLite Studio,点击左上角的Add a Database按钮
- 在弹出的窗口里,选择File选项卡
- 点击Browse找到你的
login.db文件,给数据库起个易识别的名字(比如Flask_Login_DB) - 点击OK,就能在左侧面板看到这个数据库,展开后就能查看和操作
user表了
小提示
如果想把数据库文件放在Flask推荐的instance子目录(专门存放用户数据的目录),只需要修改URI为:
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///instance/login.db"
运行代码前记得先手动创建instance文件夹哦!
内容的提问来源于stack exchange,提问作者Sutsuj
相关产品推荐
相关产品推荐

