時間:大三
上學期沒有用微信內置瀏覽器而純對話開發,坑了自己好一下。
下學期選錯bottle框架,以為輕量好,誰知開發中什么都自己來很痛苦。
選對了框架django,終於在大三最后的個把月里寫出了里程碑式的現在這個微信端,自己都感動到,作為我大三一年web開發的終結吧。
亮點1:自帶后台管理
亮點2:后台權限管理
亮點3:微信回復規則設置去代碼化,圖形界面。
亮點4:一平台多網店
亮點5:圖片自動縮略成200*300px大小(使用了七牛空間)
亮點6:gzip壓縮,網絡流量為原來33%左右。SAE中Gzip壓縮設置
亮點7:保存接受的所以文本消息,記錄永存!
亮點8:購買者可查看歷史訂單,購買總額等。
亮點9:后台可查看用戶下單總額,最近下單時間等等。
亮點10:商店信息,商品信息均在后台直接修改。
亮點11:平台創始人可強制商店下線。
技巧:微信規則不匹配時不能回復嗎?不是,規則包含空字符總能匹配任意文本,請看下面的微信規則截圖。
后台
選擇botlle框架,自己寫sql,便學邊用,很痛苦的換了20天作出來了微信第一版。這版其實很簡陋,但其給我的經驗很重要。演示地址:點擊入口。
拋棄bottle,選擇django,后來證明我的選擇是對的,雖然學習坡度比較大,但是其框架本身帶來的效率和效益卻是學習框架本身的好幾倍。我喜歡它的自帶后台管理,和后台權限管理,更喜歡它的ORM,省去很多sql的事情,比如sql語句編寫,sql防注問題,sql遷移方便等等。這次用上了這三大功能,另外還巧用django的模板渲染實現微信回復功能,但這不是django特有。
微信已經實現了多店功能。這也是當初我為什么堅定選擇django,因為django的一project多app的架構剛好契合這個一平台多店鋪的想法。后來我學scrapy框架,發現也是一project多app,方便不少。同時說明一project多app是先進的,是趨勢之一。
前台
我比較喜歡后端的開發,前端的我就修改已有好的前端代碼,參考了微信公眾號“果然美”,“微果大愛”,“華農果滿堂”,“微盟”,“樂外賣”等前端設計。技術上使用html5+css3。
現在平台上有果色天香和澳洲紅酒兩個店鋪
代碼統計
使用linux shell統計
合理版 cat $(find . -name "*.py" -or -name "*.yaml" -or -name "*.rst" -or -name "sell_detail.html") | wc | sed "1i static:\nlines | words | bytes"
純凈版 cat $(find . -path "./guosetianxiang" -prune -or -name "*.py" -or -name "*.yaml" -or -name "*.rst" -or -name "sell_detail.html") | wc | sed "1i static:\nlines | words | bytes"
完全版 cat $(find . -name "*.py" -or -name "*.yaml" -or -name "*.rst" -or -name "*.html") | wc | sed "1i static:\nlines | words | bytes"
前端展示:感謝前人成果!
=============================后台是亮點=============================
后台首頁
微信回復規則,使用模板渲染自定義變量!
功能代碼:
微信用戶
訂單截圖
看到這里,你是否也認為django是個好框架呢?
在新浪雲上運行得還好,不算慢,請那些嫌棄django臃腫龐大,速度慢的人,不要再誤導他人,這就好像那些說python慢的人一樣,我至今沒有實踐證明出過慢在哪。
django是python作者本身都很喜歡的框架,又是那么多商用網站的框架,經得其考驗。
如果可以,當然希望你可以作出一個比django更好的框架,可是至少現在還不大可能。python的django和ruby的rails都得經過時間的考驗。我相信 django 是經得住考驗的,正如我相信python一樣。
附上
增加微店步驟(澳洲紅酒為例)
復制guosetianxiang 改名 aozhouwine
修改setting.py 安裝app 'aozhouwine'
訪問/syncdb-online完成數據庫同步
根app的url.py 加入兩行:
import aozhouwine
...
url(r'^aozhouwine/', include('aozhouwine.urls')),
admin管理,weixinshop應用商店表中增加一條,並增加賬戶給商店所有者A,然后授權。
A在自己的應用商店信息表中增加一條記錄,(token在此設置)。
微信開發者url: /aozhouwine/weixin/ token為之前設置的。
訪問/aozhouwine/sync_shopinfo完成商店同步。
A增加消息,回復規則表中的記錄。
A上架商品。
依然涉及少量代碼操作,以及有一點繁瑣。