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()  # 現此才統一提交,建立數據
相關文章
相關標籤/搜索