清明一直比较忙,有三天没有学习Python了,刚工作第一天,相对比较轻松,所以偷偷学了会,果然三天不用就生疏了,看来还得多写写。
由于平时工作用的是C#,最近公司底层都在转型,由原来的SqlServer+MVC转向Mysql+微服务化,原来的自动生成工具不能用了,所以想乘学Python期间,自己搞个试试,这是今天搞的成果,在这里总结下。
(一)思路
与大致的代码生成工具一样,达到的效果是生成通用的三层代码,减少重复开发量。
用Python开发的话,主要利用string模板(template)来实现。其中涉及到读取Mysql和文件操作(用于读写)。
最终生成效果是C#代码(暂时以Model作为demo)
(二)具体实现
1.创建模板
首先需要创建一个model的模板,把公共部分提取出来。
这里定义了四个需要填充的参数:日期(date),命名空间(namespace),表名(tablename),字段属性(fields)。
2.读取MySql指定表
有了模板,就要填充该模板啦,主要难点就是字段啦。
利用pymysql模块读取数据
3.拼接fields
通过读取到字段,进行string拼接
4.生成Model.cs
通过读取模板文件,生成目标文件
5.大功告成
通过这么几步,基本上实现了自动生成Model的代码,像生成java代码也类型,根据不同的模板进行更新从而达到你要的目标文件。
(三)总结
在整个开发过程中还是比较顺利,但是代码不是很友好,只是大致的写出功能demo,后期会进行优化。
其中碰到中文乱码的问题,主要在写入时指定下编码。
明天打算弄几个复杂的模板,并且将一些写死的参数可输入化,然后研究下Python的图形界面,做成一个生成小工具,也能减少很多工作量。
需要源码的和我说下,一起学习,一起交流。