【什么叫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实体模型类】

怎样完成? 大家必须 写一个类去承继他

随后还必须 开设一个特性

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)

 

评论(0条)

刀客源码 游客评论