Python3 整合SQLAlchemy ORM 框架:實現MySQL 表初始化
什麼是ORM
orm英文全稱object relational mapping,就是物件對映關係程式,簡單來說我們類似python這種物件導向的程式來說一切皆物件,但是我們使用的資料庫卻都是關係型的,為了保證一致的使用習慣,通過orm將程式語言的物件模型和資料庫的關係模型建立對映關係,這樣我們在使用程式語言對資料庫進行操作的時候可以直接使用程式語言的物件模型進行操作就可以了,而不用直接使用sql語言。
什麼是SQLAlchemy
SQLAlchemy是python的ORM框架
安裝SQLAlchemy 框架,前提條件必須安裝PyMySQL 框架
pip install pymysql
再安裝SQLAlchemy 框架
pip install sqlalchemy
如何使用SQLAlchemy 連線MySQL資料庫並建立表
1、通過import 關鍵字,匯入依賴的包
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
簡單說明匯入的包功能:
create_engine:建立資料庫引擎(連線mysql 資料庫核心)
Table:建立表
Column:建立表欄位
Integer:指定表欄位的資料型別(整形)
String:指定表欄位的資料型別(字串)
MetaData:後設資料型別
ForeignKey:指定表的外來鍵關係
2、建立一個資料庫引擎
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/hotel", echo=True)
3、建立後設資料
metadata = MetaData(engine)
4、新增表結構資料
user = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
Column('fullname', String(40))
)
address_table = Table('address', metadata,
Column('id', Integer, primary_key=True),
Column('user_id', None, ForeignKey('user.id')),
Column('email', String(128), nullable=False)
)
5、執行表建立
metadata.create_all()
注意:在第四步時已經將表結構存到了metadata裡面,然後讓metadata執行create_all()方法,這樣就向指定的資料庫裡建立了user和address表。
6、完整的功能原始碼:
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
engine = create_engine("mysql+pymysql://root:123456@localhost:3306/hotel", echo=True)
metadata = MetaData(engine)
user = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
Column('fullname', String(40))
)
address_table = Table('address', metadata,
Column('id', Integer, primary_key=True),
Column('user_id', None, ForeignKey('user.id')),
Column('email', String(128), nullable=False)
)
metadata.create_all()
相關文章
- Python之ORM框架SQLAlchemyPythonORM框架SQL
- Flask框架之八SQLAlchemy -ormFlask框架SQLORM
- python的ORM技術:使用sqlalchemy操作mysql資料庫PythonORMMySql資料庫
- node 整合sequelize ORM 框架學習ORM框架
- .NET ORM框架HiSql實戰-第一章-整合HiSqlORM框架SQL
- Python SQLALchemy框架PythonSQL框架
- 自研ORM框架實現工作單元模式ORM框架模式
- 第三方ORM 之 SQLAlchemyORMSQL
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- 【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現GolangORM
- ORM框架之GreenDao3.0整合與註解(一)ORM框架
- 輕鬆實現報表整合
- ShardingSphere + Mysql,實現分庫分表、讀寫分離,並整合 SpringBootMySqlSpring Boot
- Mysql表分割槽實現MySql
- 7天用Go動手寫/從零實現ORM框架GeeORMGoORM框架
- Disruptor 實踐:整合到現有的爬蟲框架爬蟲框架
- SpringBoot框架整合SpringSecurity實現安全訪問控制Spring Boot框架Gse
- 利用orm 在業務程式碼無感知下,實現實現分庫分表ORM
- sqlx操作MySQL實戰及其ORM原理MySqlORM
- sqlalchemy實現時間列自動更新SQL
- ORM操作mysqlORMMySql
- Java ORM 框架指南JavaORM框架
- 自定義ORM框架ORM框架
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- 分散式RPC框架Dubbo實現服務治理:整合Kryo實現高速序列化,整合Hystrix實現熔斷器分散式RPC框架
- kettle 實現mysql單表增量同步MySql
- 建議beego的ORM,可以實現表欄位註釋的新增GoORM
- Laravel 中對 ORM 實現理解LaravelORM
- 造輪子之ORM整合ORM
- 非框架內使用 ORM框架ORM
- 手擼ORM淺談ORM框架之Add篇ORM框架
- 手擼ORM淺談ORM框架之Update篇ORM框架
- 手擼ORM淺談ORM框架之Query篇ORM框架
- 手擼ORM淺談ORM框架之Delete篇ORM框架delete
- 用建造者模式實現一個防SQL隱碼攻擊的ORM框架模式SQLORM框架
- orm單表操作ORM
- NetCore框架WTM的分表分庫實現NetCore框架
- pt-archiver實現MySQL定期分表HiveMySql