Python41 sqlalchemy orm


orm紹介
MySQLにはSQL文がたくさんあります.たとえば、データベースをクエリーするときの文の書き方が多く、これらの文を覚えにくいので、ormで複雑な文を書くのを避けることができ、モジュールでデータベースのインタラクションを行うことができます.
SQLAlchemyはPythonコミュニティで最も有名なORMツールの一つであり、効率的で高性能なデータベースアクセス設計のために、完全なエンタープライズクラスの永続モデルを実現しています.
orm英文全称object relational mappingは、オブジェクトマッピング関係プログラムであり、簡単に言えばpythonのようなオブジェクト向けのプログラムではすべてオブジェクトであるが、私たちが使用するデータベースはすべて関係型であり、一致した使用習慣を保証するために、ormを通じてプログラミング言語のオブジェクトモデルとデータベースの関係モデルをマッピング関係に確立する.これにより,sql言語を直接使用することなく,プログラミング言語を用いてデータベースを操作する際にプログラミング言語のオブジェクトモデルを直接使用して操作すればよい.
ormの利点:
データアクセスの詳細、汎用データベースインタラクション、ORMのコアを非表示にします.彼は私たちの汎用データベースのインタラクションを簡単に実行しやすくし、このようなSQL文を全く考慮する必要はありません.急速に開発され、そこから来た.ORMは,固化データ構造の構築を容易にする.
欠点:
避けられないのは、自動化はマッピングと関連管理を意味し、コストはパフォーマンスを犠牲にすることです(初期には、ORMが好きではないすべての共通点です).現在の様々なORMフレームワークは、この(LazyLoad,Cache)を軽減するために様々な方法を試みているが、効果は著しい.

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

#     
#   pymysql  sql(   MySQL-db );root   :  ;MySQL IP  ;test MySQL     。
#       qwe123QWE!@#,IP    @        IP 
# echo=True     sql     
engine = create_engine("mysql+pymysql://root:qwe123QWE!@#@192.168.163.131/test",encoding='utf-8',echo=True)

#   orm  
Base = declarative_base()

#   Base  
class User(Base):
    '''
         
    '''
    __tablename__ = 'user' #   
    id = Column(Integer, primary_key=True)  #   
    name = Column(String(32))  # name  
    password = Column(String(64))  # password  

#      
#        Base class User    ,       engine  
Base.metadata.create_all(engine)

上図:pycharmでコードを実行すると、echo=Trueのため、sql文を生成するプロセスが表示されます.そうしないと、何も表示されません.
上図:testデータベースにuserというtableを作成します.図のuserテーブル構造はpythonコードと同じであることがわかります.