• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Yancy00

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

flask-ORM模型用法

什么是ORM?

ORM---Object Relationship Mapping对象关系映射.
用python面向对象方式操作关系型数据库的技术.
ORM模型与数据库中的表一一对应.ORM模型中的每个类属性对应表中的每个字段.

用ORM操作数据库优点:

  • 开发效率高
  • 安全性比直接操作原生sql高
  • 灵活性强

创建ORM模型

# ORM模型类
from exts import db   # db是一个SQLAlchemy对象绑定app

class User(db.Model):
    __tablename__='user'
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    username=db.Column(db.String(100))
    password=db.Column(db.String(100))

# db.create_all()  # 创建所有ORM类对应的表
# 一般不这么创建表.通过迁移命令生成表.

ORM增删改查操作

示例代码
# blueprint/crud.py
from flask import  render_template,Blueprint,redirect
from exts import  db
from models import  User

bp=Blueprint('db',__name__,url_prefix='/db')

@bp.route('/insert')
def  insertItem():
    user1=User(username='zh3',password='123')
    user2=User(username='li4',password='abc')
    user3=User(username='wa5',password='888')
    db.session.add(user1)   # 插入一条数据到数据库
    db.session.add(user2)
    db.session.add(user3)
    db.session.commit()
    print('添加成功')
    return redirect('/db/userlist')


@bp.route('/userlist')
def userlist():
    users=User.query.all()  # 查询表中记录
    # 查询相关方法: all(),first(),one(),get(primariy_key),exists(),count()
    # User.query.filter(User.username=='zh3').delete()
    # User.query.filter_by(User.username=='zh3').delete()

    return render_template('user_list.html', userList=users)

@bp.route('/clear')
def clear():
    userList=User.query.all()
    for user in userList:
        db.session.delete(user)  # 删
    db.session.commit()
    return '用户表已清空!'


@bp.route('/update')
def update():
    zh3=User.query.filter(User.username=='zh3').first()
    zh3.username='法外狂徒'
    db.session.commit()
    return redirect('/db/userlist')

ORM模型迁移

flask db init                      # 初始化迁移环境
flask db migrate -m  '备注信息'     # 生成迁移脚本
flask db upgrade                   # 执行迁移脚本

posted on 2023-03-19 12:06  Yancy00  阅读(74)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3