本文实例讲述了python利用sqlacodegen自动生成orm实体类。分享给大家供大家参考,具体如下:
在前面一篇《python流行orm框架sqlalchemy安装与使用》我们是手动创建了一个名叫infos.py的文件,然后定义了一个news
类,把这个类作为和我们news
数据表的映射。
1
2
3
4
5
6
7
8
9
10
|
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)
|
现在我们来看看sqlacodegen
这个工具,自动生成像上面那样的类文件。
1、安装sqlacodegen
1
2
3
|
#cd 项目虚拟环境
#执行
. / python3 - m pip install sqlacodegen
|
2、使用sqlacodegen生成案列
1
2
|
#注意还是在虚拟环境目录下执行
. / sqlacodegen - - tables fund - - outfile .. / .. / mappers / found.py mysql + pymysql: / / root:root@localhost / test?charset = utf8
|
--tables
指定数据表名称,我们给fund基金数据表生成。--outfile
指定输出文件名称。
3、生成的fund.py文件代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
# 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)
|
这样就不用手动写啦。
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/github_26672553/article/details/78549078