SQLAlchemyの関連動作(ORM)

環境:python3.7、pycharm、mysqlの

ORM(オブジェクト・リレーショナル・マッパー)

オブジェクトリレーショナルマッピング(ORM)SQLAlchemyのORMの技術は、これらのライブラリ(フレームワーク)のいずれかを達成することである、あなたはデータベースクエリの技術と運用データからオブジェクト指向のパラダイムを使用することができます。

優位

  • それは、テーブルとテーブル変換対象のオブジェクトを自動化し、開発コストと保守コストを削減することができるので、開発を簡素化
  • 手書き組み込みSQLとストアドプロシージャ、少ないコードと比較すると
  • アプリケーション層の透明オブジェクト・キャッシュ、システム性能が改善されます
  • 最適化されたソリューションは、アプリケーションの迅速かつ容易に維持するようにしてください

マッピングのタイプ

SQLAlchemyの操作MySQLデータベース

1.インポート
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
2.リンクデータベース
db = sqlalchemy.create_engine("mysql+pymysql://root:11111111@localhost/demo")
3.ベースクラスの継承を作成します。
base = declarative_base(db)
4.マッピング
class User(base):
    __tablename__ = 'student'

id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String(32))
5.テーブルを作成します。
if __name__ == '__main__':

base.metadata.create_all(db)
6.オペレーションデータベース
1.导入
from sqlalchemy.orm import sessionmaker

2.绑定一个查询实例
session = sessionmaker(bind=db)
session = session()

3.插入 
######插入单条数据
user =User(
    id = 4,
    name='python'
)
session.add(user)
session.commit()

######插入多条数据
session.add_all(
   [
       User(id=5,name='java'),
       User(id=6,name='php')
   ]
 )
session.commit()

4.查询
######查询多条数据
data = session.query(User).all()
for x in data:
    print (x.name)

data = session.query(User).filter(User.name== 'xxxx').all()
######查询单条数据
data = session.query(User).filter(User.name == 'xxxx').first()
data = session.query(User).filter_by(name='xxxx').first()
######使用get查询id
data = session.query(User).get(ident = 10)
print (data.name)

5.修改
data = session.query(User).get(10)
print (data)
data.name = 'laoli'
session.merge(data)
session.commit()
或者
session.query(User).filter(User.id == 10).update({User.name:"xxxxx",User.id:11})
session.commit()

6.删除
data = session.query(User).filter(User.id == 11).first()
session.delete(data)
session.commit()

おすすめ

転載: www.cnblogs.com/vinic-xxm/p/11390718.html