使用 Python 開發 LeanCloud 云引擎入門教程
來自: http://drakeet.me/leancloud-engine-guide
作為獨立應用開發者,可能很多時候沒有能力或者精力再去開發一個為 App 或者網站服務的后端程序,對于這個問題,我的一個解決方案就是使用 LeanCloud 的云引擎功能,通過云引擎,可以在短時間內快速開發出一個穩定、可靠、可升級拓展的服務。正好最近學習了 Python,于是使用 Python 并基于 LeanCloud 的云引擎功能進行了一次實踐,而且由于官方文檔并沒有寫得很好,我碰了幾次壁,而且內容分散在好幾個頁面,所以覺得有必要在此再詳細記錄下并分享給大家。
注:以下部分內容并非完全原創,有的摘自官方文檔,官方文檔鏈接在文末有給出。
零,你得先學會 Python
JS 也是可以的,但由于我這篇文章主講的就是使用 Python 來開發,所以要求至少得懂得 Python。不過不懂也不要緊,只要有興趣肯去學,一個 Python 最多也就一兩周的事情。我也是上一周利用一點點業余時間學了幾下就懂了,畢竟 Python 的名言是“人生苦短,我用 Python”…
一,注冊 LeanCloud 賬號并創建一個應用
關于這點,我就不細說了,這是一個非常簡單直接的過程,沒聽說過 LeanCloud 的同學可以自己上官網查看搗鼓幾下就知道了: https://leancloud.cn
二,進入應用的云引擎頁面
云引擎的入口如下:
進入之后,點擊左側的設置,我們先來自定義一個子域名。進入“設置”頁面之后,可以看到右邊頁面有一個”Web 主機域名“選項,可以填入你想要的子域名名字,比如我在我的這個測試應用的這邊填的是:lunei-dev,那么等到一切都部署完之后,我們要訪問的基本鏈接就是:lunei-dev.leanapp.cn
三,一些準備工作
需要先安裝 LeanCloud 的命令行工具,也就是在終端中使用的。安裝方式是在終端中輸入:
npm install -g avoscloud-code
但由于 npm 已經被顯而易見的不可抗力變為無法訪問的存在,所以我們需要在調用它之前加一點黑魔法,詳情見這篇文章: 利用proxychains在終端使用socks5代理
這篇文章中,作者說的 cp ./src/proxychains.conf /etc/proxychians.conf 其實應該加上 sudo,不然可能會導致沒有權限而復制失敗,檢查方式就是使用 vi 打開 /etc/proxychians.conf 這個文件,如果第一次打開,內容是空的,說明沒有復制成功,因為正常情況下,它有許多默認內容。
搞定 proxychains4 以后,你就可以使用如下命令進行安裝 LeanCloud 的命令行工具了:
sudo proxychains4 npm install -g avoscloud-code
四,創建要部署到云引擎上的應用
我們可以基于 LeanCloud 官方提供的一個 Python 項目模板,其源代碼是在 GitHub 上開源的,使用如下命令:
$ git clone https://github.com/leancloud/python-getting-started.git $ cd python-getting-started
然后添加應用 appId 等信息到該項目:
$ avoscloud add <APP-NAME> <APP-ID>
上面中,<APP-NAME> 應該替換成你的應用名稱(可以隨意,但最好是和你在第一步中創建的應用名字一樣),<APP-ID> 替換為你的應用 ID,這個 App ID 可以從你的 LeanCloud 應用的這個頁面中獲得:
五,本地運行
首先需要安裝 Python 依賴:
$ sudo pip install -Ur requirements.txt
如果你的電腦中既有 Python 2.7 又有 Python 3,那建議你使用如下命令進行安裝:
$ sudo pip2.7 install -Ur requirements.txt
因為 LeanCloud 的云引擎目前只支持 2.7,而且這么做之后可以避免后續一些可能的問題(俺就遇到)。
另外,這句命令中 requirements.txt 這個文件就是書寫你的項目需要的第三方庫的文件,它里面已經有指定要引入一些第三方庫了。如果你要引入更多第三方庫,最好是把它也寫入這個文件,然后重新運行上面這個命令更新一下。
然后就可以啟動應用了,通過在當前文件夾目錄運行這個命令即可:
avoscloud
窗口會提示輸入 Master Key,該信息可以在 控制臺 / 設置 / 應用 Key 中找到,也就是同第四步那個截圖頁面,在 APP ID 下面。
復制粘貼 Master Key 后,窗口不會有任何顯示,直接按回車鍵確認即可。
應用即可啟動運行: http://localhost:3000
六,部署到云引擎
部署到預備環境:
$ avoscloud deploy
如果你設置了 二級域名,即可通過 http://stg-${your_app_domain}.leanapp.cn 訪問你應用的預備環境(測試環境)。比如我的 http://stg-lunei-dev.leanapp.cn
部署到生產環境:
$ avoscloud publish
如果你設置了 二級域名,即可通過 http://${your_app_domain}.leanapp.cn 訪問你應用的生產環境,比如我的 http://lunei-dev.leanapp.cn
截止到目前為止,LeanCloud 官方的 python-getting-started 這個 demo 或稱模板項目就運行和發布完了,你可以通過你的鏈接訪問到如下頁面:
最后
最后,如果你是 Python 新手,由于這個模板項目是基于 Python flask 框架,我可以給你一個修改這個 python-getting-started 項目的示例,并訪問 http://${your_app_domain}.leanapp.cn/xxxxxx 獲得你指定的返回內容,這樣可以做為 App 的接口服務或稱 API:
同樣是在 python-getting-started 目錄之下,打開 app.py,在頂上新增一行引入:
from flask import request
然后在底下新增一個方法:
@app.route('/get_json', methods=['GET']) def get_json(): user_name = request.form['user_name'] return r'{"hello": "' + user_name + r'"}'
然后保存這個文件,重新在終端中輸入 avoscloud 即可重新運行這個新的服務程序了,你可以在本地訪問 http://localhost:3000/get_json?user_name=drakeet 進行測試,將會返回:
{“hello”: “drakeet”}