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