sqlalchemy_テーブル作成アクション_データ操作の追加

3003 ワード

sqlalchemyを学ぶのはpythonのORMコンポーネントを学ぶことです
以下はまず資料を見て、よく理解しなければ本文を見て、順番に漸進的に知識点を理解することができます.
  • 公式サイトは最高のドキュメント
  • 翻訳官网一篇好的blog
  • テーブルの作成
    #User.py
    import sqlalchemy
    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,Integer,String
    #    
    engine=create_engine("mysql+pymysql://test:[email protected]/pythonstudy",
                           encoding='utf-8', echo=True)
    #  ORM  
    Base=declarative_base()  #  orm  
    class User(Base):
        __tablename__='user'   #  
        id=Column(Integer,primary_key=True)
        name=Column(String(32))
        password=Column(String(32))
    
        def __init__(self, name, password):
            self.name = name
            self.password = password
        def set_namme(self, name):
            self.name = name
        def get_name(self):
            return self.name
        def set_pwd(self, password):
            self.password = password
        def get_pwd(self):
            return self.password
    Base.metadata.create_all(engine)   #     
    

    キー(Key)
  • List declarative_base()関数ベースクラスの作成
  • 任意の数のマッピングクラスを定義できます.エンドユーザーのレコードを保存するためにアプリケーションを使用するテーブルからusersを開始します.呼び出された新しいクラスUserは、このテーブルをマッピングするクラスになります.クラスでは、マッピングするテーブルの詳細を定義します.主にテーブル名、およびカラムの名前とデータ型
  • Base.metadata.create_all(engine)

  • テーブルデータの追加
    ダイレクトコード
    #    .py
    from  sqlalchemy.orm import sessionmaker
    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from com.wfc.python.day10sqlalchemy.User import User
    engine=create_engine("mysql+pymysql://test:[email protected]/pythonstudy",
                           encoding='utf-8', echo=True)
    Base=declarative_base()  #  orm  
    Session=sessionmaker(bind=engine)   #   Session     ,      
    session=Session()  #  Session   
    ed_user=User(name='wangfangchen',password='123456')
    session.add(ed_user)       #          
    #          
    session.add_all(
        [User(name='wendy', password='foobar'),
        User(name='mary',  password='xxg527'),
        User(name='fred',   password='blah')]
    )
    session.commit()           #    
    

    上のcodeには一部の注釈があり、理解できます.以下、具体的にまとめます.
  • セッションの作成:データベースに対するORMの「処理」はセッションです.アプリケーションを初めて設定するとcreate_Engine()文は同じレベルで、新しいSessionオブジェクトのファクトリ
  • として使用されるSessionクラスを定義します.
    Session = sessionmaker(bind=engine)
    
  • インスタンスセッション
  • session = Session()
    
  • データベースにデータを追加し、セッションセッションセッションのaddとadd_を介してallメソッド.
  • ed_user=User(name='wangfangchen',password='123456')
    session.add(ed_user)       #          
    #          
    session.add_all(
        [User(name='wendy', password='foobar'),
        User(name='mary',  password='xxg527'),
        User(name='fred',   password='blah')]
    )
    
  • 最后に必ずcommit、会话session.commit()
  • session.commit()
    

    この文書のソースアドレス