sqlalchemy ORM

1.ORM介绍

orm英文全称object relational mapping,就是对象映射关系程序,简单来讲咱们相似python这种面向对象的程序来讲一切皆对象,可是咱们使用的数据库却都是关系型的,为了保证一致的使用习惯,经过orm将编程语言的对象模型和数据库的关系模型创建映射关系,这样咱们在使用编程语言对数据库进行操做的时候能够直接使用编程语言的对象模型进行操做就能够了,而不用直接使用sql语言。python

 

 

orm的优势:mysql

  1. 隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得咱们的通用数据库交互变得简单易行,而且彻底不用考虑该死的SQL语句。快速开发,由此而来。
  2. ORM使咱们构造固化数据结构变得简单易行。

缺点:sql

  1. 无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是全部不喜欢ORM人的共同点)。如今的各类ORM框架都在尝试使用各类方法来减轻这块(LazyLoad,Cache),效果仍是很显著的。

2. sqlalchemy安装

pip install SQLAlchemy
pip install pymysql  #因为mysqldb依然不支持py3,因此这里咱们用pymysql与sqlalchemy交互

3.sqlalchemy基本使用

建立表结构和表数据:

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

engine = create_engine("mysql+pymysql://zww:123@192.168.10.144/zdb",
                       encoding='utf-8', echo=True)
Base = declarative_base()  # 生成orm基类
class User(Base):
    __tablename__ = 'user'  # 表名
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    password = Column(String(64))
Base.metadata.create_all(engine)  # 建立表结构

#建立表数据
Session_class = sessionmaker(bind=engine)  # 建立与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
Session = Session_class()  # 生成session实例
user_obj = User(name="jerry", password="jerry123")  # 生成你要建立的数据对象
print(user_obj.name, user_obj.id)  # 此时还没建立对象呢,不信你打印一下id发现仍是None
Session.add(user_obj)  # 把要建立的数据对象添加到这个session里, 一会统一建立
print(user_obj.name, user_obj.id)  # 此时也依然还没建立
Session.commit()  # 现此才统一提交,建立数据
相关文章
相关标签/搜索