文档章节

用python从数据库生成c#代码

捍卫机密
 捍卫机密
发布于 2017/05/25 17:37
字数 445
阅读 16
收藏 0
点赞 0
评论 0

懒惰的我要改变世界! 还有个题外话名言:寂寞驱动世界!----我

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by weilai on 2016/11/25


import pymysql


def format_db(formatter):
    conn = pymysql.connect(host='172.17.1.241', port=3306, user='root123', passwd='root123', db='businesssystemreport', charset='UTF8')
    cur = conn.cursor()
    cur.execute("SHOW FULL COLUMNS FROM businesssystemreport.productandcompanystatisday;")
    for i in cur:
        formatter(i)
    cur.close()
    conn.close()


def template1(field):
    code_temp = 'modelBase.AddUpdateFields("{field_name}", {obj}.{field_name});////{remark}'
    code_result = code_temp.format(obj='model', field_name=field[0], remark=field[8])
    print(code_result)


def template2(field):
    code_temp = 'modelBase.AddUpdateFields("{field_name}", {f_vaule});////{remark}'
    code_result = code_temp.format(obj='', field_name=field[0], remark=field[8], f_vaule='null')
    print(code_result)


def table_to_json(field):
    code_temp = '"{field_name}":"",'
    code_result = code_temp.format(field_name=field[0])
    print(code_result)


def format_field(field):
    # result.KeyID = dataReader["KeyID"] == DBNull.Value ? string.Empty : Convert.ToString(dataReader["KeyID"].ToString());
    code_temp = '{obj}.{name} = dr["{name}"] == DBNull.Value?{default}:Convert.{converter}(dr["{name}"].ToString());////{remark}'
    convert_default_value, convert_fun = value_convert(field[1])
    code_result = code_temp.format(obj = 'result', name=field[0], default = convert_default_value, converter = convert_fun, remark = field[8])
    print(code_result)


def table_to_model(field):
    # result.KeyID = dataReader["KeyID"] == DBNull.Value ? string.Empty : Convert.ToString(dataReader["KeyID"].ToString());
    code_temp = '/// <summary>\n/// {remark}\n/// </summary>\npublic {type} {name} {{ get; set; }} = {default};\n'
    convert_default_value, convert_fun = value_type(field[1])
    code_result = code_temp.format(obj = 'result', name=field[0], default = convert_default_value, type = convert_fun, remark = field[8])
    print(code_result)


def value_convert(ft):
    if len(ft) >= 3 and ft[0:3] == 'int':
        default_value = '0'
        convert_fun = 'ToInt32'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'varchar':
        default_value = 'string.Empty'
        convert_fun = 'ToString'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'char':
        default_value = 'string.Empty'
        convert_fun = 'ToString'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'tinyint':
        default_value = '0'
        convert_fun = 'ToInt32'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'date':
        default_value = 'new DateTime()'
        convert_fun = 'ToDateTime'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'decimal':
        default_value = '0.0m'
        convert_fun = 'ToDecimal'
        return default_value, convert_fun
    return '', ''


def value_type(ft):
    if len(ft) >= 3 and ft[0:3] == 'int':
        default_value = '0'
        convert_fun = 'int'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'varchar':
        default_value = 'string.Empty'
        convert_fun = 'string'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'char':
        default_value = 'string.Empty'
        convert_fun = 'string'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'tinyint':
        default_value = '0'
        convert_fun = 'int'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'date':
        default_value = 'new DateTime()'
        convert_fun = 'DateTime'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'decimal':
        default_value = '0.0m'
        convert_fun = 'decimal'
        return default_value, convert_fun
    return '', ''

format_db(table_to_model)

# format_db(table_to_json)

# format_db(template1)

# format_db(template2)

 

© 著作权归作者所有

共有 人打赏支持
捍卫机密
粉丝 4
博文 119
码字总数 34542
作品 0
成都
程序员
django实例:用创建你的第一个应用投票系统

https://docs.djangoproject.com/en/1.5/intro/tutorial03/ 投票应用的原文讲解的更加详细 当然主要是从django的帮助文档里面来的,权当是翻译吧 这个投票系统的主要功能有 1、一个前台页面,...

我的去哈哈
2014/02/14
0
0
django实例:创建你的第一个应用投票系统(2)数据库的安装

在上一篇中 django实例:创建你的第一个应用投票系统(一) 已经介绍基本的功能,并已经启动服务了。这一节介绍数据库相关的东东。 首页打开mysite/settings.py配置文件, 设置数据库 打到D...

DjangoChina
2013/06/01
0
0
Python开发(基础):初识Python

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quo...

wbb827
07/03
0
0
django实例:用创建你的第一个应用投票系统

当然主要是从django的帮助文档里面来的,权当是翻译吧 这个投票系统的主要功能有 1、一个前台页面,可以让用户来投票 2、一个管理员页面,可以用来添加、修改、删除投票 首页第一步要确定你已...

DjangoChina
2013/06/01
0
0
Python是如何怼翻其他编程语言而窜上宝座的

来PK啊! 谁怕谁啊! 在过去的两年间,Python一路高歌猛进,成功窜上“最火编程语言”的宝座。 更可怕的是,这把火不仅仅是在程序员的圈子里越烧越旺,甚至还烧到了程序员的圈子外,从小学生...

超级数学建模
04/18
0
0
python +ip2region IP库地址文件实现秒级查询1万不同ip归属地址

一、服务器环境介绍: 服务器硬件:4核4g内存 服务器系统:centos6.9 x86_64位最小化安装 二、环境安装 参考地址:https://github.com/lionsoul2014/ip2region 直接下载包到服务器上的/root...

wjw555
07/09
0
0
手机游戏服务器引擎Scut免费开源

scut 官网:http://www.scutgame.com/ Scut是一个开源、免费、稳定、快速开发的手机游戏服务器引擎,支持开发人员使用Python脚本语言或C#语言开发;底层采用C#编写,基于MVC框架思想设计, ...

shezjl
2015/06/16
0
0
Django 基础(一),项目创建、URL路由、数据库操作、模版

一、安装Django 下载地址:https://www.djangoproject.com/download/ 1、tar zxvf Django-1.8.10.tar.gz 2、cd Django-1.8.10 3、python setup.py install 二、创建一个Django项目 django-a......

qw87112
06/28
0
0
python MySQLdb安装和使用

MySQLdb是Python连接MySQL的模块,下面介绍一下源码方式安装MySQLdb: 首先要下载下载:请到官方网站http://sourceforge.net/projects/mysql-python/或者点击链接下载http://downloads.sour...

我的去哈哈
2014/03/28
0
2
Python与C#对比 python学习

Python是一种跨平台语言。无论是在Windows、Linux、Unix还是Mac Os系统,我们都可以使用Python。甚至在Linux、Unix及Mac OS系统内已经集成了Python。语法简洁优美, 简单,易学。拥有强大的标...

zhouzhou2018
05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SmartyGit安装及拉取rf代码

SmartyGit安装及拉取rf代码 一:生成ssh keys 下载安装包:Git Bash(Git-1.8.3-preview20130601.exe) 安装完成后打开Git Bash,安装流程如下: 在如下图位置找到Git Bash,运行Git Bash在其命...

舒文joven
9分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
11分钟前
0
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
13分钟前
0
0
网络监控工具类

package com.guorentong.learn.organ.utils;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManage......

王先森oO
13分钟前
0
0
命令

sudo nginx -s reload 重启nginx sudo lsof -i -P | grep -i "listen" 查看端口占用

那个猴子
17分钟前
0
0
用scrapy-redis爬去新浪-以及把数据存储到

需求:爬取新浪网导航页(http://news.sina.com.cn/guide/)所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。 准备工作: a.安装redis(windows或者linux) b.安装Redis Des...

丁典
17分钟前
0
0
PHP常用函数篇

1.为什么要使用函数? 除了内建的PHP函数,我们可以创建我们自己的函数。 函数是可以在程序中重复使用的语句块。 使代码逻辑更清晰 避免过多的全局变量 封装后避免相同逻辑重复代码,只需调用...

天地有涯风有信_大海无量不见人
18分钟前
0
0
对List分组

在日常工作中会遇到这样的情景,我们需要对List按照List中对象的一个值进行分组。比如一个Human的List,我们要根据性别分组,传统的方法是做双层循环,逐个对比,今天我要介绍一种详单简单的...

珂jack
20分钟前
0
0
分析jquery ajax jsonpCallback回调函数名包含点号报错问题

现象 项目中涉及到跨域请求,采用jquery ajax jsonp来实现,但是遇到一个奇怪问题,在设置回调函数名称时,若包含点号,如“Callback.Success”,那么执行完成后,其error回调函数始终会被触...

iwaller
23分钟前
0
0
【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API

最近在协助调研 Apollo 生成的代码是否有可能跨 Query 共享模型的问题,虽然初步结论是不能,并不是预期的结果,但是在调研过程中积累的一些经验,有必要记录下。如果你也对 Graphql 感兴趣,...

ios122
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部