日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python用sqlacodegen根據已有數據庫(表)結構生成對應SQLAlchemy模型

瀏覽:24日期:2022-06-16 18:16:03
目錄應用場景福音快快使用模型類效果注意事項

今天介紹一個后臺開發神器,很適合當我們數據庫中已存在了這些表,然后你想得到它們的model類使用ORM技術進行CRUD操作(或者我根本就不知道怎么寫modle類的時候);手寫100張表的model類?這是。。。。。。。。。 是不可能的,這輩子都不可能的。因為我們有sqlacodegen神器, 一行命令獲取數據庫所有表的模型類。

應用場景

1、后臺開發中,需要經常對數據庫進行CRUD操作;

2、這個過程中,我們就經常借助ORM技術進行便利的CURD,比如成熟的SQLAlchemy;

3、但是,進行ORM操作前需要提供和table對應的模型類;

4、并且,很多歷史table已經存在于數據庫中;

5、如果有幾百張table呢?還自己一個個去寫嗎?

6、我相信你心中會有個念頭。。。

福音

還是那句話,Python大法好。 這里就介紹一個根據已有數據庫(表)結構生成對應SQLAlchemy模型類的神器: sqlacodegen

This is a tool that reads the structure of an existing database and generates the appropriate SQLAlchemy model code, using the declarative style if possible.

安裝方法:

pip install sqlacodegen快快使用

使用方法也很簡單,只需要在終端(命令行窗口)運行一行命令即可, 將會獲取到整個數據庫的model:常用數據庫的使用方法:

sqlacodegen postgresql:///some_local_dbsqlacodegen mysql+oursql://user:password@localhost/dbnamesqlacodegen sqlite:///database.db

查看具體參數可以輸入:

sqlacodegen --help

參數含義:

optional arguments: -h, --help show this help message and exit --version print the version number and exit --schema SCHEMA load tables from an alternate schema --tables TABLES tables to process (comma-separated, default: all) --noviews ignore views --noindexesignore indexes --noconstraints ignore constraints --nojoined don’t autodetect joined table inheritance --noinflectdon’t try to convert tables names to singular form --noclassesdon’t generate classes, only tables --outfile OUTFILE file to write output to (default: stdout)

目前我在postgresql的默認的postgres數據庫中有個這樣的表:

create table friends( id varchar(3) primary key , address varchar(50) not null , name varchar(10) not null);create unique index name_addresson friends (name, address);

為了使用ORM進行操作,我需要獲取它的modle類但唯一索引的model類怎么寫呢? 我們借助sqlacodegen來自動生成就好了

sqlacodegen postgresql://ridingroad:ridingroad@127.0.0.1:5432/postgres --outfile=models.py --tables friends模型類效果

查看輸出到models.py的內容

# coding: utf-8from sqlalchemy import Column, Index, Stringfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()metadata = Base.metadataclass Friend(Base): __tablename__ = ’friends’ __table_args__ = (Index(’name_address’, ’name’, ’address’, unique=True), ) id = Column(String(3), primary_key=True) address = Column(String(50), nullable=False) name = Column(String(10), nullable=False)

如果你有很多表,就直接指定數據庫唄(這是會生成整個數據庫的ORM模型類哦),不具體到每張表就好了, 后面就可以愉快的CRUD了,耶

注意事項

Why does it sometimes generate classes and sometimes Tables?

Unless the --noclasses option is used, sqlacodegen tries to generate declarative model classes from each table. There are two circumstances in which a Table is generated instead: 1、the table has no primary key constraint (which is required by SQLAlchemy for every model class) 2、the table is an association table between two other tables

當你的表的字段缺少primary key或這張表是有兩個外鍵約束的時候,會生成table而不是模型類了。比如,我那張表是這樣的結構:

create table friends( id varchar(3) , address varchar(50) not null , name varchar(10) not null);create unique index name_address on friends (name, address);

再執行同一個命令:

sqlacodegen postgresql://ridingroad:ridingroad@127.0.0.1:5432/postgres --outfile=models.py --tables friends

獲取到的是Table:

# coding: utf-8from sqlalchemy import Column, Index, MetaData, String, Tablemetadata = MetaData()t_friends = Table( ’friends’, metadata, Column(’id’, String(3)), Column(’address’, String(50), nullable=False), Column(’name’, String(10), nullable=False), Index(’name_address’, ’name’, ’address’, unique=True))

其實和模型類差不多嘛,但是還是盡量帶上primary key吧,免得手動修改成模型類

以上就是python用sqlacodegen根據已有數據庫(表)結構生成對應SQLAlchemy模型的詳細內容,更多關于python sqlacodegen的使用的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
深夜福利视频一区二区| 国产精品高清一区二区| 九九久久电影| 日本一区福利在线| 国产成人在线中文字幕| 亚洲精品va| 欧美日韩网址| 中文另类视频| 日韩毛片一区| 国产精品亚洲一区二区三区在线观看| 亚洲激情av| 国产精品扒开腿做爽爽爽软件| 日本精品影院| 91亚洲无吗| 久久久9色精品国产一区二区三区| 亚洲一区导航| 国产不卡精品在线| 在线日韩成人| 欧美日韩在线观看首页| 日本综合精品一区| 捆绑调教日本一区二区三区| 亚洲主播在线| 国语对白精品一区二区| 香蕉久久夜色精品国产| 美女性感视频久久| 免费日韩一区二区| av最新在线| 欧美亚洲tv| 欧美亚洲激情| 欧美激情三区| 蜜桃91丨九色丨蝌蚪91桃色| 在线天堂资源www在线污| 日韩一区免费| 欧美1区2区3区| 欧美激情麻豆| 午夜久久av| 好看不卡的中文字幕| 久久只有精品| 日韩精品亚洲专区在线观看| 欧美日韩在线播放视频| 美女久久久久久 | 中文不卡在线| 丝袜美腿一区| 精品伊人久久久| 日本亚洲欧美天堂免费| 99国产精品视频免费观看一公开| 精品高清久久| 国产日韩亚洲欧美精品| 伊人久久成人| 亚洲a一区二区三区| 精品伊人久久久| 欧美一区成人| 91精品福利| 99久久亚洲精品| 国产一区二区三区不卡视频网站 | 亚洲永久字幕| 日韩不卡免费高清视频| 精品久久91| 久久xxx视频| 国产日韩一区二区三区在线播放| 天堂va蜜桃一区二区三区| 欧美高清不卡| 日韩精品看片| а√天堂中文在线资源8| 国产精品chinese| 日本不卡一区二区三区| 一区二区国产在线观看| 久久国产精品毛片| 中文精品在线| 好看的亚洲午夜视频在线| 成人午夜国产| 成人日韩在线| 婷婷综合六月| 国产v综合v| 亚洲成人一区在线观看| 日韩在线观看| 久久国产免费| 九色精品91| 亚洲一区国产一区| 天堂成人免费av电影一区| 热久久久久久久| 亚洲aa在线| 国产亚洲一区二区三区啪| 日韩av在线播放中文字幕| 日本亚洲三级在线| 日韩精品一区二区三区中文在线| 美国三级日本三级久久99| 婷婷精品在线| 欧美日韩一区二区高清| 国产精品三p一区二区| 国产精品1区在线| 国产精品qvod| 黄色网一区二区| 日韩国产一区二区| 国产一区观看| 蜜桃视频免费观看一区| 欧美一区成人| 久久久久伊人| 亚洲免费福利| 偷拍欧美精品| 中文字幕免费精品| 国产精品日韩精品中文字幕| 成人污污视频| 不卡一区综合视频| 综合国产在线| 国产精品草草| 欧洲亚洲一区二区三区| 亚洲永久字幕| 日韩精品第二页| 精品视频一区二区三区在线观看| 国产成人精品一区二区三区免费| 日韩国产一区| 丝袜亚洲精品中文字幕一区| 日本国产欧美| 麻豆一区二区在线| 久久久蜜桃一区二区人| 噜噜噜躁狠狠躁狠狠精品视频| 日本中文字幕不卡| 麻豆国产一区| 欧美精品激情| 天堂久久av| 成人综合一区| 国模 一区 二区 三区| 亚洲精品乱码日韩| 精品久久97| 午夜在线精品偷拍| 国产劲爆久久| 欧美91精品| 国产三级一区| 久久在线免费| 亚洲精品亚洲人成在线观看| 久久伊人亚洲| 欧美日韩日本国产亚洲在线| 日韩在线观看一区二区三区| 国内精品亚洲| 久久国产精品亚洲77777| 久久激五月天综合精品| 久久激情婷婷| 欧美一级网址| 日韩精品午夜| 日本va欧美va欧美va精品| 色乱码一区二区三区网站| 人人爽香蕉精品| 日韩成人免费| 亚洲精品人人| 99精品在线观看| 国产探花一区二区| 激情视频一区二区三区| 久久黄色影视| 午夜影院欧美| 国产精品一线天粉嫩av| 99香蕉国产精品偷在线观看 | 日本久久二区| 色综合www| 国产精品一二| 日韩午夜av在线| 国精品产品一区| 免费在线观看视频一区| 国产不卡一区| 国产亚洲高清在线观看| 不卡一区综合视频| 国产中文欧美日韩在线| 日韩精品三级| 国产精品日韩久久久| 精品午夜久久| 日本国产一区| 亚洲欧美日韩国产一区二区| caoporn视频在线| 欧美一级二级三级视频| 99亚洲精品| 日韩高清中文字幕一区二区| 国产精品久久久一区二区| 老鸭窝毛片一区二区三区| 婷婷综合六月| 国产精品白丝久久av网站| 亚洲欧美成人综合| 91精品精品| 精品一二三区| 国产欧美一区二区色老头| 先锋亚洲精品| 午夜精品影院| 亚洲调教视频在线观看| 国产+成+人+亚洲欧洲在线| 日韩avvvv在线播放| 麻豆久久精品| 久久国产直播| 成人免费一区| 国产精品www.| 国产亚洲人成a在线v网站| 日韩精品一二三| 午夜欧美精品久久久久久久| 久久久成人网| 精品美女视频 | 亚洲精品乱码| 免费在线观看一区二区三区| 91精品国产成人观看| 日韩精品第一区| 国产资源在线观看入口av| 国产精品99视频| av资源新版天堂在线|