如何从Mac命令行访问Flask-SQLAlchemy创建的.db数据库实例?
解决方法
你的问题出在用错了命令行环境:sqlite3是SQL原生交互环境,不认Python的SQLAlchemy语法;直接运行python3 main.py是启动Flask服务,不是交互式shell,所以输入代码没反应。下面给两种可行的方法:
方法一:直接用sqlite3原生命令查询
适合不想写Python代码,直接用SQL语句的场景:
- 打开终端,进入你的Flask项目目录,执行:
(如果你的数据库文件不在当前目录,要写完整路径,比如sqlite3 database.dbsqlite3 /Users/xxx/project/database.db) - 进入sqlite3环境后,先确认用户表的名称(SQLAlchemy默认把模型类名转小写当表名,比如
User模型对应user表,除非你在模型里指定了__tablename__):.tables - 查看表结构(确认字段):
.schema user - 查询所有用户:
SELECT * FROM user; - 退出sqlite3环境:输入
.quit回车
方法二:用Flask交互式shell执行SQLAlchemy查询
适合想直接用你熟悉的User.query.all()语法的场景:
- 终端进入项目目录,先设置Flask应用入口(假设你的主文件是
main.py):
(如果是开发环境,还可以加export FLASK_APP=main.pyexport FLASK_ENV=development开启调试模式,可选) - 启动Flask交互式shell:
flask shell - 进入shell后,先导入你的User模型:
from main import User - 现在就可以执行你熟悉的查询了:
users = User.query.all() # 打印用户信息,比如遍历输出用户名和ID for user in users: print(f"ID: {user.id}, 用户名: {user.username}") - 退出shell:输入
exit()回车
内容的提问来源于stack exchange,提问作者LilyZh
相关产品推荐
相关产品推荐

