標籤:

茴香豆的「茴」的幾種寫法

茴香豆的「茴」的幾種寫法

來自專欄節點6 人贊了文章

上一篇 開坑造一個ORM,結尾的時候,說接下來支持「關係」,並在 SQLite 上使用起來。說到做到,代碼在今年二月春節已經完成,節後修了一個BUG,頭圖是最新的使用方法。但是 GitHub 沒有提交新的代碼。為什麼了?除了修改BUG之外,支持「關係」只添加了4行代碼。這讓我思考,自己做的事情,是否就是研究「茴」的幾種寫法。本質上,進步很少。再說ORM。剛接觸的時候,覺得是一個好東西,能收斂資料庫操作,代碼也好看一點。隨著使用的頻繁,也發現一些不如意的地方。上一篇已經提到過一些點了。在動手做的過程中,也研究了其他語言的ORM,思路都大致相同,具體實現不一樣罷了。今天,我想講一下,我的思路。


整體思路,如上圖。核心是開發一套API。其中,api -> sql 這一步,我以為很難,仔細想後,有自己的實現。比如:SELECT

SELECT * FROM user;SELECT age, name FROM user;SELECT MAX(age) FROM user;

其實這裡可以有一個模板,比如這樣這樣:

SELECT <fields> FROM <table>;

有意思的是,fields 可以在是多個模板,比如這樣:

*[field1, field2 ... ][sqlFunction1, sqlFunction2 ... ]

比較有意思的是,sql函數又可以是多個模板,比如這樣:

sqlFunction(field)sqlFunction2(sqlFunction1(field))

好了,把一個模板當作一個或者多個函數,返回對應的結果的字元串。需要做到就是實現一個或者多個函數即可。

最後,提供給用戶一套API。API裡層封裝了上述函數。

我的ORM選擇了,Python ORM 常見的寫法。目的是使用起來不太陌生。


開的坑,從某種程度已經完成了。SQLite 已經可以使用上了。接下來,想多看一些書,補一下基礎。


推薦閱讀:

停頓和拒絕,媽媽們必須GET的兩種技能(正面管教親子系列分享)
教你如何分享腸道微生態這杯熱羹
寶寶正確的清潔方式[分享]
[分享] 每天讀一下這幾句話

TAG:Python | 分享 |