一、什么ORM模型?ORM模型有什么优势?
对象关系映射(Object·Relationship·Mapping),简称 ORM,是一种可以用 Python 面向对象的方式来操作关系型数据库的技术,具有可以映射到数据库表能力的Python类我们称之为ORM 模型。一个ORM 模型与数据库中一个表相对应,ORM 模型中的每个类属性分别对应表的每个字段,ORM 模型的每个实例对象对应表中每条记录。ORM技术提供了面向对象与SQL交互的桥梁,让开发者用面向对象的方式操作数据库,使用ORM模型具有以下优势。
(1)开发效率高:几乎不需要写原生SOL语句,使用纯Python的方式操作数据库,大大的提高了开发效率。
(2)安全性高:ORM 模型底层代码对一些常见的安全问题,比如SQL注入做了防护,比直接使用SOL语句更加安全。
(3)灵活性强:Flask-SQLAlchemy底层支持 SQLite、MySQL、Oracle、PostgreSQL 等关系型数据库,但针对不同的数据库,ORM 模型代码几乎一一样,只需修改少量代码,即可完成底层数据库的更换。
二、在Flask-->app.py中如何创建数据库表
ps:文章下方链接跳转上一章节flask如何连接数据库 Flask如何连接MySQL数据库?-CSDN博客
例:
class User(db.Model): #创建User表继承已经封装好的数据库模型 __tablename__ = "user" #表名 #定义字段 id = db.Column(db.Integer, primary_key=True, autoincrement=True) #autoincrement序号自动增长 username = db.Column(db.String(100), nullable=False) password = db.Column(db.String(100), nullable=False) with app.app_context(): #上下文管理器来创建数据库表 db.create_all()
三、增加操作
@app.route("/user/add") def add_user(): # 1. 创建ORM对象 user = User(username="小陈", password='1001') # 2. 将ORM对象添加到db.session中 db.session.add(user) # 3. 将db.session中的改变同步到数据库中 db.session.commit() return "用户创建成功!" #http://127.0.0.1:5000/user/add
四、查找操作
@app.route("/user/query") def query_user(): # 1. get查找:根据主键查找 # user = User.query.get(1) # print(f"{user.id}: {user.username}-{user.password}") # 2. filter_by查找 # Query:类数组 users = User.query.filter_by(username="小陈") for user in users: print(user.username) #多条数据查找 return "数据查找成功!" #http://127.0.0.1:5000/user/query
五、修改操作
@app.route("/user/update") def update_user(): user = User.query.filter_by(username="小陈").first() user.password = "2002" db.session.commit() return "数据修改成功!" # http://127.0.0.1:5000/user/update
六、删除操作
@app.route('/user/delete') def delete_user(): # 1. 查找 user = User.query.get(1) # 2. 从db.session中删除 db.session.delete(user) # 3. 将db.session中的修改,同步到数据库中 db.session.commit() return "数据删除成功!" # http://127.0.0.1:5000/user/delete
上一章节:Flask如何连接MySQL数据库?-CSDN博客
下一章节:Flask(Mysql)——ORM模型外键与表的关系及用flask_migrate迁移ORM模型-CSDN博客