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資料庫
- 大白話說Python+Flask入門(六)Flask SQLAlchemy操作mysql資料庫PythonFlaskMySql資料庫
- Python之ORM框架SQLAlchemyPythonORM框架SQL
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- 01-python操作Mysql資料庫PythonMySql資料庫
- Python操作MySQL資料庫的5種方式PythonMySql資料庫
- Django ORM 和 sqlalchemy 在每次發起資料庫請求前對殘留事務的清理操作DjangoORMSQL資料庫
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- python操作MySQL資料庫連線(pymysql)PythonMySql資料庫
- FastAPI - Tortoise ORM 資料庫基礎操作ASTAPIORM資料庫
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- Python3 整合SQLAlchemy ORM 框架:實現MySQL 表初始化PythonORM框架MySql
- ORM操作mysqlORMMySql
- MySQL 資料庫操作MySql資料庫
- 全棧 – 12 資料庫 用Python操作MySQL全棧資料庫PythonMySql
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- Python庫之SQLAlchemyPythonSQL
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- Mysql資料庫操作命令MySql資料庫
- PHP操作MySQL資料庫PHPMySql資料庫
- MySQL資料庫常用操作MySql資料庫
- 使用python暴力破解mysql資料庫PythonMySql資料庫
- MySQL Workbench 中文使用指南 - 如何使用 Workbench 操作 MySQL 資料庫教程MySql資料庫
- Python 利用pymysql和openpyxl操作MySQL資料庫並插入Excel資料PythonMySql資料庫Excel
- Python 操作 SQLite 資料庫PythonSQLite資料庫
- Python操作SQLite資料庫PythonSQLite資料庫
- python操作mongodb資料庫PythonMongoDB資料庫
- mysql資料庫基本操作(五)MySql資料庫
- mysql資料庫基本操作(三)MySql資料庫
- mysql資料庫基本操作(四)MySql資料庫
- 02、MySQL—資料庫基本操作MySql資料庫
- mysql資料庫基本操作(六)MySql資料庫
- python3.x中ORM框架SQLObject使用SQLite資料庫隨筆PythonORM框架ObjectSQLite資料庫
- python介面自動化(三十八)-python操作mysql資料庫(詳解)PythonMySql資料庫
- Flask框架之八SQLAlchemy -ormFlask框架SQLORM
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫