如何用python開發移動App后臺?
給一套我用過的解決方案,用來開發過web項目(網頁 + ios)和手游項目(ios + 安卓),都是一套后臺對應多種前端平臺:web框架:DjangoDjango 是一套相對全(zhong)面(yong)的框架,基本你要的功能都有,文檔很細致,上手比較容易,開發效率比較高。自帶 auth、session、orm、admin 等功能,尤其是 admin,如果要求不是太高,用自帶的后臺管理系統就能省下很多開發工作。web server:nginx相對 apache 較輕,簡潔。用來部署 django 也比較方便,可參考 Setting up Django and your web server with uWSGI and nginx數據庫:mysql這個不限定,看業務需求和開發者喜好。當然如果用了 django,自然最好選一個 orm 支持比較好的。RESTful API:Tastypie基于 Django 的 RESTful API。Django 本身作為一個 web 框架,返回的結果默認是渲染好的 html 文本。借助 Tastypie,可以比較方便的制作 json 數據格式的接口,將前后端解耦合。這樣不管是網頁、iOS 還是 Android,都可以用同樣的接口。再針對問題補充一下:
1、如果使用python語言,需要學習哪些知識?python 語言本身,使用的框架,web 開發的通用知識,比如 HTTP 請求的處理流程、RESTful、OAuth 等。
2、選擇什么樣的python框架開發,這個框架的優勢?見上文。
3、如何部署服務器?本地服務器調試,以及公網服務器部署?Django 自帶本地調試服務,開發的時候用局域網地址調試即可。公網部署見上文。
4、如果使用python框架開發移動后臺服務,在開發源碼內使用哪種框架?mvc還是其它的,比如我返回json數據,每次json對象最外層有一些相同的東西,該如何處理?Tastypie 可以處理掉生成 json 數據時的很多體力活。
5、python的后臺服務最大能支持多大的pv量會嚴重影響用戶體驗性能?這個沒法給確切答案,具體情況會受機器硬件條件(CPU、內存、I/O)、網絡帶寬、代碼質量、架構設計,甚至配置參數的影響。目前有較大型網站使用 python,并正常運作(參見 有哪些大型公司在使用 Python?有哪些知名項目是主要由 Python 寫成的? - Crossin 的回答),所以 python 本身不是問題。實踐時,做好壓力測試和上線后的性能監控,找出瓶頸不斷優化是王道。
6、如何兼顧 網頁前端以及移動端 開發的后臺?通過 API,后臺無需知道是什么平臺在使用它。
7、有沒用相關的案例,即用python開發的移動后臺?有沒有該問題的開源項目?通常框架會自帶測試案例。真實案例開源的暫時不知道。如果哪天我把之前寫的開源了,再回來修改答案。