使用 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!

发表回复