python的ORM技術:使用sqlalchemy操作mysql資料庫
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sqlalchemy import Column, String, create_engine, Integer, Date, Float, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
#######################################################################################################
##############初始化資料庫連線,返回session
#######################################################################################################
def get_session():
# 初始化資料庫連線 # `資料庫型別+資料庫驅動名稱://使用者名稱:口令@機器地址:埠號/資料庫名`
engine = create_engine(`mysql+pymysql://root:root@10.10.10.11:9000/mysqldb?charset=utf8`)
DBSession = sessionmaker(bind=engine) # 建立DBSession型別
session = DBSession()
return session
#######################################################################################################
##############表格物件建立
#######################################################################################################
###建立物件的基類:
Base = declarative_base()
###定義Asset表物件
class Asset(Base):
# 表的名字:
__tablename__ = `hr_asset`
# 表的結構:
id = Column(Integer, primary_key=True)
assetnum = Column(String(50))
assetname = Column(String(50))
assetmodel = Column(String(50))
assettype = Column(Integer)
assetstate = Column(Integer)
usepersonid = Column(Integer, ForeignKey("hr_user.id"))
userperson = relationship("User",backref="asset", uselist=False)
####定義User表物件
class User(Base):
# 表的名字:
__tablename__ = `hr_user`
# 表的結構:
id = Column(Integer, primary_key=True)
username = Column(String(50))
age = Column(Integer)
degree = Column(String(50))
#######################################################################################################
##############資料操作模板
########################################################################################################
####INSERT插入資料 模板
if __name__ == "__main__":
try:
# 建立session物件
session1 = get_session()
# 建立新表格物件
new_user = User(username=`龍九`, age=33, degree="本科")
# 新增到session
session1 .add(new_user)
# 提交即儲存到資料庫
session1 .commit()
# 得到新資料id
the_id=new_user.id
# 關閉session
session1 .close()
except:
pass
####DELETE刪除資料 模板
if __name__ == "__main__":
try:
session2 = get_session()
session2.query(User).filter(User.id == `3`).delete()
session2.commit()
session2.close()
except:
pass
####UPDATE更新資料 模板
if __name__ == "__main__": #模板1
try:
session3 = get_session()
session3.query(User).filter(User.id == `2`).update({User.degree: `高中`}, synchronize_session=False)
session3.commit()
session3.close()
except:
pass
if __name__ == "__main__": #模板2
try:
session3 = get_session()
the_user = session3.query(User).get(2) #引數為主鍵id
the_user.username ="小王"
the_user.age= 40
the_user.degree ="博士"
session3.commit()
session3.close()
except:
pass
####SELECT查詢資料之單條資料 模板
if __name__ == "__main__":
try:
session4 = get_session()
user = session4.query(User).filter(User.id == 3).one() #注:這裡用one()
print(`type:`, type(user))
print(`name:`, user.username)
session4.close()
except:
pass
####SELECT查詢資料之多條資料 模板
if __name__ == "__main__":
try:
session5 = get_session()
users = session5.query(User).filter(User.id > 0).all() #注:這裡用all()
for i in range(len(users)):
print(users[i].id)
print(users[i].username)
session5.close()
except:
pass
####SELECT查詢資料之連表查詢 模板
if __name__ == "__main__":
try:
session6 = get_session()
assets = session6.query(Asset).join(User).filter(User.id > 0).all()
for i in range(len(assets)):
pass
session6.close()
except:
pass
相關文章
- SQLALchemy操作MySQL關係型資料庫MySql資料庫
- 第二篇:操縱MySQL資料庫(2) - 基於ORM思想的SQLAlchemy庫MySql資料庫ORM
- 大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql資料庫PythonFlaskMySql資料庫
- Python之ORM框架SQLAlchemyPythonORM框架SQL
- Python SqlAlchemy資料庫持久化使用方法PythonSQL資料庫持久化
- 使用mysql-connector-python操作MYSQL資料庫MySqlPython資料庫
- python資料庫(mysql)操作Python資料庫MySql
- python 操作mysql資料庫PythonMySql資料庫
- Python Mysql 資料庫操作PythonMySql資料庫
- python操作mysql資料庫PythonMySql資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- 使用OTL操作MySQL資料庫MySql資料庫
- Django ORM 和 sqlalchemy 在每次發起資料庫請求前對殘留事務的清理操作DjangoORMSQL資料庫
- mysql資料庫分割槽技術MySql資料庫
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- FastAPI - Tortoise ORM 資料庫基礎操作ASTAPIORM資料庫
- 01-python操作Mysql資料庫PythonMySql資料庫
- Python3 MySQL 資料庫操作PythonMySql資料庫
- 使用Flasky-SQLAlchemy 管理資料庫FlaskSQL資料庫
- Python操作MySQL資料庫的5種方式PythonMySql資料庫
- python使用mysql資料庫PythonMySql資料庫
- Django vs SQLAlchemy:哪個 Python ORM 更好DjangoSQLPythonORM
- ORM操作mysqlORMMySql
- Oracle資料庫——xTTS技術的使用Oracle資料庫TTS
- SQLAlchemy 和其他的 ORM 框架SQLORM框架
- Python3 整合SQLAlchemy ORM 框架:實現MySQL 表初始化PythonORM框架MySql
- python操作MySQL資料庫連線(pymysql)PythonMySql資料庫
- MySQL 資料庫操作MySql資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- 使用特殊的技術更新資料庫(ABAP)資料庫
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- ubuntu下python通過sqlalchemy庫訪問oracle資料庫UbuntuPythonSQLOracle資料庫
- 全棧 – 12 資料庫 用Python操作MySQL全棧資料庫PythonMySql
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- 全棧 - 12 資料庫 用Python操作MySQL全棧資料庫PythonMySql
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- Mysql資料庫操作命令MySql資料庫