Flask

ORM是一种将数据库操作转化为对象操作的设计思想,如Python中的Flask-SQLAlchemy插件,简化了数据库的交互。通过创建模型类映射数据库表,可以方便地执行查询和管理事务。在Flask中,配置SQLALCHEMY_DATABASE_URI并初始化SQLAlchemy,能实现自动化数据库操作,例如查询所有用户信息只需调用User.query.all()。
摘要由CSDN通过智能技术生成

一.ORM设计思想

相对于数据库的操作,设计DAO结构的目的是简化数据库的操作,把SQL语句封装到基础类(BasDao)中,但是要求开发人员必须特别熟悉SQL语句和Python的基础.自己设计Dao的优点,有效防止SQL注入风险.通过使用ORM避免不会SQL的开发人员能够快速的使用/操作数据库,ORM的思想是将实体类(Model或Entries)和数据库表直接建立关联关系,即类->表,类对象->表中的记录,类对象的属性->表中的字段.

ORM(Object Relationship Mapping)对象关系映射.

  • 类和表
  • 类实例即是表的记录
  • 类属性即为表的字段

当ORM关系映射成功之后,直接操作类或对象,即操作数据库中表或记录

简单的实现ORM(自省+元类)

class User():
   id = 100
   name = 20
class UserDB():
    def save(user:User):
        sql = "insert into user(id,name) values (%s,%s)"
        with self.db as c:
            c.execute(sql,args=(user.id,user.name))
        return False

二.Flask-SQLAlchemy插件

2.1安装

pip install flask-sqlchemy -i https://mirrors.aliyun.com/pypi/simple

2.2配置

在settings.Dev类进行配置

数据库连接的路径  dialect+driver://user:password@ip:port/db?charset=utf8

SQLCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@192.168.109.138:3306/bank'

SQLALCHEMY_TRACK_MODIFICATIONS = True # 可扩展

SQLALXHEMY_COMMIT_ON_TEARDOWN = True # 回收资源时,自动提交事务

SQLALCHEMY_ECHO = True # 测试调试SQL

2.3创建SQLAlichemy实例并初始化

创建models模块,在它的__init__.py脚本中创建

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

在创建Flask对象app的脚本中,初始化SQLAlchemy类对象

from models import db

...

db.init_app(app) # 初始化应用环境

2.4实战项目

1.将银行系统下的所有表,创建相应的模型类

1.1声明用户的模型类UserEntity,继承db.Model父类

# 默认情况下:类名即为表名
class User(db.Model):
    

2.更新所有的查询列表页面

2.1在用户的list2路由的处理函数中使用User模型类

from models import User
data = {
    'users': User.query.all(),
    'session':session
}

User.query.all()从数据库中查询所有的用户信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值