Python自學之路-自動生成C 代碼

編程語言 Python MySQL Java 程序猿的生活 2017-04-05

Python自學之路-自動生成C 代碼

清明一直比較忙,有三天沒有學習Python了,剛工作第一天,相對比較輕鬆,所以偷偷學了會,果然三天不用就生疏了,看來還得多寫寫。

由於平時工作用的是C#,最近公司底層都在轉型,由原來的SqlServer+MVC轉向Mysql+微服務化,原來的自動生成工具不能用了,所以想乘學Python期間,自己搞個試試,這是今天搞的成果,在這裡總結下。

(一)思路

與大致的代碼生成工具一樣,達到的效果是生成通用的三層代碼,減少重複開發量。

用Python開發的話,主要利用string模板(template)來實現。其中涉及到讀取Mysql和文件操作(用於讀寫)。

最終生成效果是C#代碼(暫時以Model作為demo)

Python自學之路-自動生成C 代碼

(二)具體實現

1.創建模板

首先需要創建一個model的模板,把公共部分提取出來。

這裡定義了四個需要填充的參數:日期(date),命名空間(namespace),表名(tablename),字段屬性(fields)。

Python自學之路-自動生成C 代碼

2.讀取MySql指定表

有了模板,就要填充該模板啦,主要難點就是字段啦。

利用pymysql模塊讀取數據

Python自學之路-自動生成C 代碼

3.拼接fields

通過讀取到字段,進行string拼接

Python自學之路-自動生成C 代碼

4.生成Model.cs

通過讀取模板文件,生成目標文件

Python自學之路-自動生成C 代碼

5.大功告成

通過這麼幾步,基本上實現了自動生成Model的代碼,像生成java代碼也類型,根據不同的模板進行更新從而達到你要的目標文件。

Python自學之路-自動生成C 代碼

(三)總結

在整個開發過程中還是比較順利,但是代碼不是很友好,只是大致的寫出功能demo,後期會進行優化。

其中碰到中文亂碼的問題,主要在寫入時指定下編碼。

Python自學之路-自動生成C 代碼

明天打算弄幾個複雜的模板,並且將一些寫死的參數可輸入化,然後研究下Python的圖形界面,做成一個生成小工具,也能減少很多工作量。

需要源碼的和我說下,一起學習,一起交流。

相關推薦

推薦中...