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
- SQLAlchemy 和其他的 ORM 框架SQLORM框架
- node 整合sequelize ORM 框架學習ORM框架
- python的ORM技術:使用sqlalchemy操作mysql資料庫PythonORMMySql資料庫
- .NET ORM框架HiSql實戰-第一章-整合HiSqlORM框架SQL
- 第三方ORM 之 SQLAlchemyORMSQL
- 自研ORM框架實現工作單元模式ORM框架模式
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- Django vs SQLAlchemy:哪個 Python ORM 更好DjangoSQLPythonORM
- Python SQLALchemy框架PythonSQL框架
- 【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現GolangORM
- ORM框架之GreenDao3.0整合與註解(一)ORM框架
- orm 框架ORM框架
- 輕鬆實現報表整合
- 第二篇:操縱MySQL資料庫(2) - 基於ORM思想的SQLAlchemy庫MySql資料庫ORM
- 關於ORM實現ORM
- 利用orm 在業務程式碼無感知下,實現實現分庫分表ORM
- 【spring原始碼學習】spring整合orm資料框架Spring原始碼ORM框架
- Mysql表分割槽實現MySql
- 7天用Go動手寫/從零實現ORM框架GeeORMGoORM框架
- Disruptor 實踐:整合到現有的爬蟲框架爬蟲框架
- sqlalchemy實現時間列自動更新SQL
- 自定義ORM框架ORM框架
- Java ORM 框架指南JavaORM框架
- sqlx操作MySQL實戰及其ORM原理MySqlORM
- ORM操作mysqlORMMySql
- ShardingSphere + Mysql,實現分庫分表、讀寫分離,並整合 SpringBootMySqlSpring Boot
- Laravel 中對 ORM 實現理解LaravelORM
- 建議beego的ORM,可以實現表欄位註釋的新增GoORM
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- 非框架內使用 ORM框架ORM
- golang orm 框架之 gormGolangORM框架
- ORM框架有無必要?ORM框架
- 手擼ORM淺談ORM框架之Query篇ORM框架
- 手擼ORM淺談ORM框架之Delete篇ORM框架delete
- 手擼ORM淺談ORM框架之Update篇ORM框架
- kettle 實現mysql單表增量同步MySql