ORM模型框架操作mysql数据库的方法


Posted in MySQL onJuly 25, 2021

【什么是ORM】

ORM 全称是(Object Relational Mapping)表示对象关系映射; 通俗理解可以理解为编程语言的虚拟数据库;

【理解ORM】

用户地址信息数据库表与对象的映射

ORM模型框架操作mysql数据库的方法

【ORM的重要特性】

1.面向对象的编程思想,方便扩充

2. 少写(几乎不写)sql,提升开发效率

3.支持多种类型的数据库(常用的mysql,pg,oracle等等),方便切换

4.ORM技术已经相当成熟,能解决绝大部分问题

【ORM模型框架的选择】

ORM模型框架操作mysql数据库的方法

【SQLAlchemy ORM模型】

众所周知,ORM框架模型可选择的有很多,那么我们这边选择了SQLAlchemy 模型框架

pip install SQLAlchemy 安装sql alchemy; 也可以指定版本号pip install SQLAlchemy ==1.4.17

import sqlalcherm; sqlalchemy.__version__; 验证是否安装成功及版本号;

【SQL Alchemy的使用】

一.开始连接数据库
二.声明ORM模型基类
三.实现ORM模型类
四.同步数据库表

开始连接数据库

  • 延迟连接(Lazy Connecting)——只有在真正操作数据库的时候,才会连接数据库
  • 连接代码示例
from sqlalchemy import  create_engine

create_engine("mysql://root:@127.0.0.1:3306/school?charset=utf8,echo=True,future=True")

create_engine 参数解释

  1. url(默认第一个参数)——连接到哪种类型的数据库,如:mysql;以哪种数据库连接器(驱动)来连接数据库
  2. echo——是否输出logging(日志)信息,会把日志都打印出来
  3. future使用SQLAlchemy2.0 API风格

SQLAlchemy配置

ORM模型框架操作mysql数据库的方法

当密码中含有特殊字符时,怎么处理?

话不多说,见下方代码

from urllib.parse import quote_plus
如果密码里有特殊字符时,这边需要导入一个类来处理

password_formatted= quote.plus("mima%&&&mima")
把处理后的密码粘贴到上方的sqlalchemy配置中,即可

声明ORM模型基类

from sqlalchemy.orm import declarative_base

声明这个基类
Base = declarative_base()

【实现ORM模型类】

如何实现? 我们需要写1个类去继承他

然后还需要设立1个属性

from sqlalchemy import Column, Integer, String, DateTime


class Student(Base):
    """学生信息表"""
    __tablename__ = 'student'
    id = Column(Integer, name='id', primary_key=True)
    stu_no = Column(Integer, nullable=False, comment='学号')
    stu_name = Column(String(16), nullable=False, comment='姓名')
    created_at = Column(DateTime)

1.需要在同步之前保证 数据库中有这个库,如果没有,则需要手动创建

2 创建表,删除表

from  orm_connect_example import Base ,engine

# 创建表
Base.metadata.create_all(engine)

#删除表
Base.metadata.drop_all(engine)

【ORM对应的模型字段类型】

ORM模型框架操作mysql数据库的方法

ORM模型框架操作mysql数据库的方法

【代码示例】

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String, DateTime

# 第一步,准备连接
engine = create_engine('mysql://root:@10.72.100.1:8081/test_database_1?charset=utf8',echo=True)

# 第二步,声明ORM模型的基类
Base = declarative_base()


# 第三步,实现ORM模型类
class Student(Base):
    """学生信息表"""
    __tablename__ = 'student'
    id = Column(Integer, name='id', primary_key=True)
    stu_no = Column(Integer, nullable=False, comment='学号')
    stu_name = Column(String(16), nullable=False, comment='姓名')
    created_at = Column(DateTime)
#第四步 同步数据库表
def create_table()
    """同步数据库表"""
    # 新建表
    Base.metadata.create_all(bind=engine)
    # 删除表
    Base.metadata.drop_all(bind=engine)

到此这篇关于ORM模型框架操作mysql数据库的方法的文章就介绍到这了,更多相关ORM模型框架内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 逻辑备份与恢复测试的相关总结
May 14 MySQL
Navicat for MySQL的使用教程详解
May 27 MySQL
Mysql 设置boolean类型的操作
Jun 04 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
为什么MySQL选择Repeatable Read作为默认隔离级别
Jul 26 MySQL
SQL实现LeetCode(180.连续的数字)
Aug 04 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
mysql查找连续出现n次以上的数字
May 11 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
MySQL 聚合函数排序
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 #MySQL
MySQL 5.7常见数据类型
mysq启动失败问题及场景分析
You might like
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
Yii全局函数用法示例
2017/01/22 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
python正则中最短匹配实现代码
2018/01/16 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
中专生自荐信
2013/10/12 职场文书
大学生求职自荐信
2013/12/12 职场文书
车间核算员岗位职责
2014/07/01 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
出国签证在职证明范本
2014/11/24 职场文书
感谢信模板大全
2015/01/23 职场文书
幼师个人总结范文
2015/02/28 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书