本文實(shí)例講述了Python利用sqlacodegen自動(dòng)生成ORM實(shí)體類。分享給大家供大家參考,具體如下:
在前面一篇《Python流行ORM框架sqlalchemy安裝與使用》我們是手動(dòng)創(chuàng)建了一個(gè)名叫
Infos.py
的文件,然后定義了一個(gè)
News
類,把這個(gè)類作為和我們
news
數(shù)據(jù)表的映射。
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() from sqlalchemy import Column, Integer, String class News(Base): # 表名稱 __tablename__ = 'news' # news表里id字段 id = Column(Integer, primary_key=True, autoincrement=True) # news表里title字段 title = Column(String(length=255), nullable=False)
現(xiàn)在我們來(lái)看看
sqlacodegen
這個(gè)工具,自動(dòng)生成像上面那樣的類文件。
1、安裝sqlacodegen
#cd 項(xiàng)目虛擬環(huán)境 #執(zhí)行 ./python3 -m pip install sqlacodegen
2、使用sqlacodegen生成案列
#注意還是在虛擬環(huán)境目錄下執(zhí)行 ./sqlacodegen --tables fund --outfile ../../mappers/Found.py mysql+pymysql://root:root@localhost/test?charset=utf8
--tables
指定數(shù)據(jù)表名稱,我們給fund基金數(shù)據(jù)表生成。
--outfile
指定輸出文件名稱。
3、生成的 Fund.py 文件代碼如下:
# coding: utf-8 from sqlalchemy import Column, DateTime, Numeric, String from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class Fund(Base): __tablename__ = 'fund' code = Column(String(50), primary_key=True) name = Column(String(255)) NAV = Column(Numeric(5, 4)) ACCNAV = Column(Numeric(5, 4)) updated_at = Column(DateTime)
這樣就不用手動(dòng)寫(xiě)啦。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
