python: generator model using mysql9.0 or postgreSQL 17.0

mysql 9.0:

python 复制代码
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : 2024/11/18 22:41
# User      : geovindu
# Product   : PyCharm
# Project   : pyGenerator
# File      : MySqlGenerator/CreateModel.py
# explain   : 学习

import os
import re
import sys
import io
import datetime
from common.fileHelper import FileHelper
from common.strHelper import StrHelper
from bll.tableNameAndKey import TableNameAndKeyBll
from bll.tableForegin import TableForeginBll
from bll.tableModel import TableModelBll


class CreateModel(object):
    """

    """

    def __init__(self):
        self.__modelpath = os.path.join(os.getcwd() + "/mytest/model/")
        self.__file = FileHelper()
        self.__blltablekey = TableNameAndKeyBll()
        self.__bllTableModel = TableModelBll()
        self.__database = "MySQL 9.0"
        self.__os = "windows 10"
        self.__product = "PyCharm"
        self.__project = "IctGame"
        self.__name = "CreateModel"
        pass

    def __del__(self):
        """

        :return:
        """
        print(f"{self.__name} ERASE MEMORY")
    def addpackagefile(self):
        """
        生成包配置文件
        :return:
        """
        now = datetime.datetime.now()
        #bll = TableNameAndKeyBll()
        sb = []
        sbt = f"""
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : {now.strftime('%Y-%m-%d %H:%M:%S')}
# database  :{self.__database}
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : model/__init__.py
# explain   : 学习
                    """
        sb.append(sbt)
        for li in self.__blltablekey.selectSql():
            sbp=f"""
from model.{StrHelper.firstLower(li.TableName)} import {StrHelper.firstUper(li.TableName)}Info
"""
            sb.append(sbp)
        if not os.path.exists(self.__modelpath):
            os.makedirs(self.__modelpath)
        filepath = self.__modelpath + '__init__.py'
        content = ''.join(sb)
        ok = self.__file.createModelFile(filepath, content)



    def add(self):
        """
        生成实体
        :return:
        """
        #fileHelper=FileHelper()
        now = datetime.datetime.now()
        #bll = TableNameAndKeyBll()
        for li in self.__blltablekey.selectSql():
            sb = []
            sbt=f"""
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : {now.strftime('%Y-%m-%d %H:%M:%S')}
# database  :{self.__database}
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : model/{li.TableName}.py
# explain   : 学习
                    
class {StrHelper.firstUper(li.TableName)}Info(object):
    \"""
    {li.TableDescription}                    
    \""" 
"""
            sb.append(sbt)
            #tbll = TableModelBll()
            sinhead = f"""
    def __init__(self):
        \"""
            構造
        \"""               

              """
            sb.append((sinhead))
            for tli in self.__bllTableModel.selectSql(li.TableName):
                sin=f"""
        self._{tli.FieldName} = None
        \"""
        {tli.FieldDescription}
        \"""
        """
                sb.append(sin)
            for pli in self.__bllTableModel.selectSql(li.TableName):
                psb=f"""
    @property
    def {pli.FieldName}(self):
        \"""
        {pli.FieldDescription}
        \"""
        return self._{pli.FieldName}

    @{pli.FieldName}.setter
    def {pli.FieldName}(self, {StrHelper.firstLower(pli.FieldName)}):
        \"""
       {pli.FieldDescription}
        :param {pli.FieldName}:
        :return:
        \"""
        self._{pli.FieldName} = {StrHelper.firstLower(pli.FieldName)}       
    """
                sb.append(psb)

            if not os.path.exists(self.__modelpath):
                os.makedirs(self.__modelpath)
            filepath=self.__modelpath+StrHelper.firstLower(li.TableName)+'.py'
            content=''.join(sb)
            ok = self.__file.createModelFile(filepath,content)

postgreSQL 17.0:

python 复制代码
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : 2024/11/18 22:41
# User      : geovindu
# Product   : PyCharm
# Project   : pyGenerator
# File      : postgreSqlGenerator/CreateModel.py
# explain   : 学习

import os
import re
import sys
import io
import datetime
from common.fileHelper import FileHelper
from common.strHelper import StrHelper
from bll.tableNameAndKey import TableNameAndKeyBll
from bll.tableForegin import TableForeginBll
from bll.tableModel import TableModelBll


class CreateModel(object):
    """

    """

    def __init__(self):
        self.__modelpath = os.path.join(os.getcwd() + "/posttest/model/")
        self.__file = FileHelper()
        self.__blltablekey = TableNameAndKeyBll()
        self.__bllTableModel = TableModelBll()
        self.__database = "postgreSQL 17.0"
        self.__os = "windows 10"
        self.__product = "PyCharm"
        self.__project = "IctGame"
        self.__name = "CreateModel"
        pass

    def __del__(self):
        """

        :return:
        """
        print(f"{self.__name} ERASE MEMORY")
    def addpackagefile(self):
        """
        生成包配置文件
        :return:
        """
        now = datetime.datetime.now()
        #bll = TableNameAndKeyBll()
        sb = []
        sbt = f"""
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : {now.strftime('%Y-%m-%d %H:%M:%S')}
# database  :{self.__database}
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : model/__init__.py
# explain   : 学习
                    """
        sb.append(sbt)
        for li in self.__blltablekey.selectSql():
            sbp=f"""
from model.{StrHelper.firstLower(li.TableName)} import {StrHelper.firstUper(li.TableName)}Info
"""
            sb.append(sbp)
        if not os.path.exists(self.__modelpath):
            os.makedirs(self.__modelpath)
        filepath = self.__modelpath + '__init__.py'
        content = ''.join(sb)
        ok = self.__file.createModelFile(filepath, content)



    def add(self):
        """
        生成实体
        :return:
        """
        #fileHelper=FileHelper()
        now = datetime.datetime.now()
        #bll = TableNameAndKeyBll()
        for li in self.__blltablekey.selectSql():
            sb = []
            sbt=f"""
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : {now.strftime('%Y-%m-%d %H:%M:%S')}
# database  :{self.__database}
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : model/{li.TableName}.py
# explain   : 学习
                    
class {StrHelper.firstUper(li.TableName)}Info(object):
    \"""
    {li.TableDescription}                    
    \""" 
"""
            sb.append(sbt)
            #tbll = TableModelBll()
            sinhead = f"""
    def __init__(self):
        \"""
            構造
        \"""               

              """
            sb.append((sinhead))
            for tli in self.__bllTableModel.selectSql(li.TableName):
                sin=f"""
        self._{tli.FieldName} = None
        \"""
        {tli.FieldDescription}
        \"""
        """
                sb.append(sin)
            for pli in self.__bllTableModel.selectSql(li.TableName):
                psb=f"""
    @property
    def {pli.FieldName}(self):
        \"""
        {pli.FieldDescription}
        \"""
        return self._{pli.FieldName}

    @{pli.FieldName}.setter
    def {pli.FieldName}(self, {StrHelper.firstLower(pli.FieldName)}):
        \"""
       {pli.FieldDescription}
        :param {pli.FieldName}:
        :return:
        \"""
        self._{pli.FieldName} = {StrHelper.firstLower(pli.FieldName)}       
    """
                sb.append(psb)

            if not os.path.exists(self.__modelpath):
                os.makedirs(self.__modelpath)
            filepath=self.__modelpath+StrHelper.firstLower(li.TableName)+'.py'
            content=''.join(sb)
            ok = self.__file.createModelFile(filepath,content)

mysql:

postgresql:

sql server:

相关推荐
Derrick__111 小时前
Web Js逆向——加密参数定位方法(Hook)
python·js
林北北的霸霸11 小时前
django初识与安装
android·mysql·adb
南汐汐月12 小时前
重生归来,我要成功 Python 高手--day33 决策树
开发语言·python·决策树
lzjava202412 小时前
Spring AI使用知识库增强对话功能
人工智能·python·spring
星释12 小时前
Rust 练习册 :Proverb与字符串处理
开发语言·后端·rust
B站_计算机毕业设计之家12 小时前
深度血虚:Django水果检测识别系统 CNN卷积神经网络算法 python语言 计算机 大数据✅
python·深度学习·计算机视觉·信息可视化·分类·cnn·django
Q_Q51100828512 小时前
python+django/flask的校园活动中心场地预约系统
spring boot·python·django·flask·node.js·php
工会主席-阿冰12 小时前
数据索引是无序时,直接用这个数据去画图的话,显示的图是错误的
开发语言·python·数据挖掘
麦麦鸡腿堡12 小时前
Java_TreeSet与TreeMap源码解读
java·开发语言
Naiva12 小时前
【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6 (二)
vscode·python·pycharm