ORM初识,sqlalchemy操作数据库(一)

1.ORM的介绍:

orm对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。一般我们使用的数据库,都是关系型数据库,为了使用习惯和方便,所以前人们(俗称前人栽树后人乘凉嘛),就想出了通过ORM与数据库建立映射关系,从而达到不使用sql语句也能操作数据库。

ORM初识,sqlalchemy操作数据库(一)_第1张图片
image.png

orm的优点:
1、隐藏数据访问细节,不用使用原生sql语句,大大的提高了开发效率。
2、使我们构造固化数据简单方便。(创建数据)

orm的缺点:
1、因为对象关系映射的原理。关联和映射极大的影响了性能。

2.sqlalchemy的安装

Python中最常用的orm框架,就是sqlalchemy。

Python3:

  pip3 install sqlalchemy

Python2:

  pip install sqlalchemy

安装完成之后。就可以通过sqlalchemy连接数据库。sqlalchemy连接数据库的底层是MySQLdb。
而一般连接mysql的库,都会封装MySQLdb。

MySQL-Python
    mysql+mysqldb://:@[:]/
   
pymysql
    mysql+pymysql://:@/[?]
   
MySQL-Connector
    mysql+mysqlconnector://:@[:]/
   
cx_Oracle
    oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]

3.sqlalchemy创建数据表

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer
from sqlalchemy.orm import sessionmaker

engine = create_engine("mysql+mysqlconnector://root  :123456@localhost:3306/data",encoding='utf8',echo=True)

Base = declarative_base() # 生成ORM基类

# 建立表结构
class User(Base):
    __tablename__ = 'student'
    id = Column(Integer,primary_key=True)
    name = Column(String(32))
    gender = Column(String(32))
    email = Column(String(64))

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

4.创建表的第二种方法

#_author_='shaojie'
#-*- coding:utf-8 -*-

from sqlalchemy import Table,MetaData,Column,Integer,String
from sqlalchemy.orm import mapper
from sqlalchemy.engine import create_engine

# 创建一个连接对象socket
engine = create_engine("mysql+mysqlconnector://root:123456@localhost:3306/data",encoding='utf8',echo=True)

# 创建一个基类,绑定socket
metadata = MetaData(bind=engine)

# 创建表结构
students = Table('students',metadata,
                Column('id',Integer,primary_key=True),
                Column('name',String(36)),
                Column('gender',String(36)),
                Column('email',String(50)))

# 建立students表的映射关系
class Students(object):

    def __init__(self,name,gender,email):
        self.name = name
        self.gender = gender
        self.email = email

# 映射
mapper(Students,students)

# 创建表
metadata.create_all(engine)

如下图。这就是我们刚才创建的数据表students

ORM初识,sqlalchemy操作数据库(一)_第2张图片
image.png

好了。很晚了,有女票抱紧女票了,没女票抱紧自己了。该睡觉了

你可能感兴趣的:(ORM初识,sqlalchemy操作数据库(一))