使用 Python 从 0 开发属于你的个人管理系统 07 篇 | 如何使用 flask-sqlalchemy 创建数据表,实现增删改查
相信你已经安装好了 Mysql 以及 flask_sqlalchemy,配置好了数据库的连接,那么接下来我们就使用它创建数据库表,实现增删改查。
你可以在 app.py 中,导入相关的库,获取 db 对象:
from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) # 使用配置 app.config.from_object(config) # 实例化数据库对象 db = SQLAlchemy(app) @app.route('/') def index(): return '这是首页!!' if __name__ == '__main__': app.run(debug=True)
假设我们现在需要一个数据表,用来存储自己的健身数据,比如运动的项目名称,运动的时间,燃烧的卡路里。
那么我们可以创建一个类 Model,定义相关的字段,让类的属性和数据表的字段对应起来:
from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) # 使用配置 app.config.from_object(config) # 实例化数据库对象 db = SQLAlchemy(app) # 数据模型 class Fitness(db.Model): __tablename__ = 'fitness' id = db.Column(db.Integer, primary_key=True) sport_name = db.Column(db.String(100)) calorie = db.Column(db.Float) @app.route('/') def index(): return '这是首页!!' if __name__ == '__main__': app.run(debug=True)
这里我们创建了 Fitness 类,集成了 Model,在这个类里面定义的属性可以作为数据库表的字段,其中:
__tablename__
指定了表名sport_name 指定了运动项目名称字段
calorie 指定了卡路里字段
我们可以使用 db.creat_all() 将数据模型直接创建到 MySQL 中。
使用 flask 的 shell 命令来给你演示一下,在你的项目目录下使用 flask shell 命令:
flask shell Python 3.9.1 (default, Dec 28 2020, 11:24:06) [Clang 12.0.0 (clang-1200.0.32.28)] on darwin App: mysystem.app [production] Instance: /Users/wistbean/vip_tutorial/personal_system/instance >>> from mysystem.app import db >>> db.create_all() >>>
这时候你可以进入
本文隐藏内容 登陆 后才可以浏览
现在数据库中的表数据就变了:
mysql> select * from fitness; +----+--------------+---------+ | id | sport_name | calorie | +----+--------------+---------+ | 1 | 俯卧撑 | 100 | | 2 | 引体向上 | 200 | +----+--------------+---------+ 2 rows in set (0.00 sec)
删
想要删除记录,可以直接使用 delete 方法将数据对象删除,然后提交即可:
>>> fit1 = Fitness.query.get(1) >>> db.session.delete(fit1) >>> db.session.commit() >>>
那么现在现在数据库中的表数据 1 就被删除了:
mysql> select * from fitness; +----+--------------+---------+ | id | sport_name | calorie | +----+--------------+---------+ | 2 | 引体向上 | 200 | +----+--------------+---------+ 1 row in set (0.00 sec)
OK,以上就是flask-sqlalchemy 创建数据表,以及增删改查的使用,当然,这个过程涉及到了数据库的基本类型,以及数据库的简单操作,我们后面还会继续常常使用到它们,甚至于表数据间的关联,这篇你比较需要认识到的的是,表和对象之间的数据关联。
我们下篇继续,peace!