記錄SQLAlchemy的基本使用

代碼

# -*- coding: utf-8 -*-


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

from _sqlalchemy.models import Person

Base = declarative_base()


class User(Base):

    __tablename__ = 'user'

    id = Column(String(20), primary_key=True)
    name = Column(String(20))


engine = create_engine('mysql+mysqlconnector://root:@localhost:3306/demo')
DBSession = sessionmaker(bind=engine)


if __name__ == '__main__':
    session = DBSession()
    new_user = Person(first_name='David', last_name="Zeng")
    session.add(new_user)
    session.commit()
    session.close()

首先是導入declarative_base,這是我要建立的對象的基本父類,而後而後就能夠建立本身的對象了,首先是建立一個engine鏈接,我使用的是mysql,因此個人鏈接連接是mysql=mysqlconnector://root:@localhost:3306/demo,其中的密碼不存在是由於我本地數據庫沒密碼,而後我用的數據庫是本身建立的demo,建立了鏈接以後就用sqlalchemy的會話綁定這個鏈接,產生一個可用的和數據庫的會話,具體原理後面我還得再瞭解一下再繼續寫,到這一步基本就差很少了,接下來就是本身對於對象的建立了,好比我new了一個對象,而後把這個對象經過會話進行了添加,這個時候其實尚未存到數據庫,只是將這個操做放到了會話當中,只有等我commit以後纔是真的被添加到數據庫當中,若是session不用了,最好是close掉,防止資源的浪費。mysql

相關文章
相關標籤/搜索