Flask 组件 SQLAlchemy

SQLAlchemy 简介:

SQLAlchemy 相当于 Django 框架中 ORM,ORM 主要实现模型对象到关系数据库数据的映射

优点
  • 只需要面向对象编程,不需要使用sql语言

  • 实现数据模型和数据库的解藕,及不用关心是什么数据库,更改简单配置即可更换数据库

缺点
  • 有部分性能损耗

SQLAlchemy 使用

SQLAlchemy 的使用和 Django 中的类似,首先要进行配置数据库参数
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


# 创建 app
app = Flask(__name__)

# 添加配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqldb://root:[email protected]:3306/flask_demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

# 创建 app
db = SQLAlchemy(app)
然后通过 ORM 进行建表
# ORM 建表类
class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True,)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)


# 执行
db.create_all()
最后就是对 ORM 进行操作
# 增:
# 给字段赋值
article1 = Article(title='2', content='222')
# 添加
db.session.add(article1)
# 提交
db.session.commit()

# 删:
# 把要删除的数据查找出来
article1 = Article.query.filter(Article.title == '2').first()
# 删除
db.session.delete(article1)
# 提交
db.session.commit()

# 改:
# 把你要更改的数据查找出来
article1 = Article.query.filter(Article.title == '2').first()
# 修改
article1.title = 'New title'
# 提交
db.session.commit()

# 查:
# select * from article where article.title = '第一';
article1 = Article.query.filter(Article.title == '第一').first()
print('title:%s' % article1.title)
print('content:%s' % article1.content)

参考文章:

https://www.jianshu.com/p/b729e84fae4f
https://www.cnblogs.com/liangxiyang/p/11249946.html
https://blog.csdn.net/jlb1024/article/details/81515155

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章