一、ORM简介
ORM,即Object Relational Mapping,对象关系映射。
ORM的作用是将编程语言与数据库进行关联,以简化依赖于数据的应用程序的创建过程。
例如,ORM通过把Python的对象模型和数据库的关系模型建立起映射关系,在使用编程语言对数据库进行操作时直接使用Python语言的对象模型进行操作,而不用使用SQL语句。
ORM封装了SQL的语句并“隐藏”了如何与数据库进行交互,我们使用时十分方便,不用再考虑让人头疼又难记的SQL语句
(图片来自于百度)
二、Python下的ORM之SqlAlchemy
SQLAlchemy是Python编程语言下的一款开源软件。
1.安装SqlAlchemy
pip3 install sqlalchemy
2.使用SqlAlchemy
引用的模块:
import sqlalchemy
from sqlalchemy import Column,Integer,String
from sqlalchemy import create_engine
from sqlalchemy import func
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
A.创建表:
from sqlalchemy import Column,Integer,String
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
#-----------创建表-----------------
'''数据库有同名的表就不再创建,echo=True时打印详细原生MySQL语句。
mysql+pymysql://root:123456@localhost/pyDBcharset=utf-8的含义:
数据库//用户名:密码@主机/数据库名称?
'''
engine=create_engine("mysql+pymysql://root:123456@localhost/pyDB?charset=utf-8",encoding='utf-8',echo=False)
Base=declarative_base() #生成ORM基类
class User(Base):
__tablename__='test1' #表名
id=Column(Integer,primary_key=True)
name=Column(String(32))
password=Column(String(64))
def __repr__(self):
return "<name=%s , password=%s>"%(self.name,self.password)
Base.metadata.create_all(engine)
在创建数据库之后,还要创建一个Session实例,相当于创建一个游标的效果
from sqlalchemy.orm import sessionmaker
Session_class=sessionmaker(bind=engine) #创建与数据库会话的类,返回一个类,不是实例
my_session=Session_class() #创建一个实例
B.增删改查:
'''增'''
#-------------------------------------------------------------------
user_obj1=User(name='Lizo',password='111')
user_obj2=User(name='Tom',password='222')
user_obj3=User(name='Jerry',password='333')
'''此时还没有在数据库创建数据'''
my_session.add(user_obj1)
my_session.add(user_obj2)
my_session.add(user_obj3)
'''此时commit一下才创建了三条数据'''
my_session.commit()
'''删'''
#-------------------------------------------------------------------
user_obj1=User(name='Lizo',password='111')
user_obj2=User(name='Tom',password='222')
user_obj3=User(name='Jerry',password='333')
'''此时还没有在数据库创建数据'''
my