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

【什么是ORM】

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

【理解ORM】

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

【ORM的重要特性】

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

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

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

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

【ORM模型框架的选择】

【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配置

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

话不多说,见下方代码

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对应的模型字段类型】

【代码示例】

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模型框架内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql数据库中的information_schema和mysql可以删除吗?

    新装的mysql里面有两个数据库:information_schema 和 mysql  .他们是干么用的?可以删除么?当然是不可以删除的. 1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存储过程等所有对象信息和进程访问.状态信息.一旦删除该数据库系统将无法使用. 2.mysql数据库是保存系统有关的权限,对象和状态信息.同样是不能删除的.并且这两个数据库都很小,不占用空间,你为什么要删除呢.? mysql数据库中

  • django框架面向对象ORM模型继承用法实例分析

    本文实例讲述了django框架面向对象ORM模型继承用法.分享给大家供大家参考,具体如下: Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据结构结合的很巧妙.支持三种风格的模型继承. 1.抽象类继承:父类继承自models.Model,但不会在底层数据库中生成相应的数据表,父类的属性列存储在其子类的数据表中. 2.多表继承:多表继承的每个模型类都在底层数据库中生成相应的数据表管理数据. 3.代理模型继承:父类用于在底层数据库中管理数据表,而子类不定义

  • MySql用DATE_FORMAT截取DateTime字段的日期值

    用 DATE_FORMAT 来格式化日期字段 SELECT DATE_FORMAT(crt_time,'%Y-%m-%d') FROM ad_n_advertise_t

  • Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解

    本文实例讲述了Laravel框架Eloquent ORM简介.模型建立及查询数据操作.分享给大家供大家参考,具体如下: 注:以下知识点可能有不全面之处,望见谅 NO.1Eloquent ORM简介 Laravel所自带的Eloquent ORM是一个优美.简洁的ActiveRecord实现,用来实现数据库操作 每个数据表都有与之相对应的"模型(Model)"用于和数据交互 NO.2模型的建立 最基础的模型代码如下: namespace App; use Illuminate\Datab

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

    [什么是ORM] ORM 全称是(Object Relational Mapping)表示对象关系映射: 通俗理解可以理解为编程语言的虚拟数据库: [理解ORM] 用户地址信息数据库表与对象的映射 [ORM的重要特性] 1.面向对象的编程思想,方便扩充 2. 少写(几乎不写)sql,提升开发效率 3.支持多种类型的数据库(常用的mysql,pg,oracle等等),方便切换 4.ORM技术已经相当成熟,能解决绝大部分问题 [ORM模型框架的选择] [SQLAlchemy ORM模型] 众所周知,

  • django中操作mysql数据库的方法

    目录 1.准备工作(django连接数据库) 2.django操作数据库(ORM) 2.1 ORM简介 2.2 创建表和字段 2.3 字段的增删改查 2.4 单表数据的增删改查 2.4.1单表数据的查询 2.4.2单表数据的增加 2.4.3单表数据的修改 2.4.4单表数据删除 2.4.5补充13条单表查询 2.4.6 神奇的双下划线查询 2.5 多表数据操作 2.5.1 orm创建表关系 2.5.2 一对多关系的增删改 2.5.3 多对多关系的增删改 2.5.4 多表的查询操作 2.6 字段类

  • flask 框架操作MySQL数据库简单示例

    本文实例讲述了flask 框架操作MySQL数据库.分享给大家供大家参考,具体如下: 一.创建数据库表格 """ Created on 19-10-8 @requirement:Anaconda 4.3.0 (64-bit) Python3.6 @description:创建表格 """ import pymysql server = '127.0.0.1' user = 'root' password = 'password' # 连接数据库

  • Java实现基于JDBC操作mysql数据库的方法

    本文实例讲述了Java实现基于JDBC操作mysql数据库的方法.分享给大家供大家参考,具体如下: package main; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class DBConnect

  • nodejs简单访问及操作mysql数据库的方法示例

    本文实例讲述了nodejs简单访问及操作mysql数据库的方法.分享给大家供大家参考,具体如下: var mysql = require('mysql'); //调用MySQL模块 mysql模块要安装 $ npm install mysql //创建一个connection var connection = mysql.createConnection({ host : '127.0.0.1', //主机 user : 'root', //MySQL认证用户名 password : '', /

  • Python操作MySQL数据库的方法

    pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') # 创建游标 cursor = conn.cursor() # 执行SQL,并返回收影响行数 eff

  • gorm操作MySql数据库的方法

    1.表中字段区分大小写的设置 在使用gorm查询的时候,会出现账户名A和a是一样的情况,是因为mysql默认不区分大小写造成的 1.问题产生的原因 MySQL在Windows下都不区分大小写. MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大小写的: 4.变量名也是严格区分大小写的: MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-

  • nodejs环境快速操作mysql数据库的方法详解

    github地址https://github.com/dmhsq/dmhsq-mysql-db 可用于腾讯云SCF以及云开发环境 错误处理尚未完善 错误参考mysql错误 引入依赖包 npm install dmhsq-mysql-db 效果如下 简化了mysql的使用 安装依赖 npm install dmhsq-mysql-db 使用示例 快速操作mysql 错误处理尚未完善 部分错误参考mysql错误 引入资源 const database = require("dmhsq-mysql-d

  • node基于express框架操作Mysql数据库的步骤

    目录 一.在express项目中操作数据库的步骤 1.安装mysql模块 2.配置mysql模块 3.测试mysql模块能否正常工作 4.查询数据库数据 5.向数据库插入数据 6.更新数据库数据 7.更新数据库数据 8.删除数据库信息的标记删除 一.在express项目中操作数据库的步骤 ①安装操作 MySQL 数据库的第三方模块(mysql) ②通过mysql模块连接到MySQL 数据库 ③通过 mysql模块执行SQL语句 1.安装mysql模块 mysql模块是托管于npm 上的第三方模块

  • pycharm中django框架连接mysql数据库的方法

    1.首先下载安装pymysql模块. pip install pymysql 如果出现 timeout 超时可以使用其他的资源下载: pip install 模块名 -i https://pypi.douban.com/simple 2.导入库 在项目的init文件中编写下列代码: # 导入pymysql模块 import pymysql pymysql.install_as_MySQLdb() 这样整个项目都能使用pymysql,就不用再每个文件都导入pymyqsl 3.在seeting.py

随机推荐