此篇為 全棧技能系列 的第13篇,。 往期直達(dá): 手機(jī)App介紹視頻:用QuickTime Player錄制,keynote剪輯 手機(jī)App介紹視頻:用QuickTime Player錄制,keynote剪輯 用expo,,從0到1 輕松學(xué)react native 為什么選擇Flask,因?yàn)榻酉聛硪?span style="font-size: 18px;">深度學(xué)習(xí)的相關(guān)技能了,,用到的是python,,為了給前端提供api,選擇了python的Flask來開發(fā)web應(yīng)用的后端服務(wù),,Nodejs不夠用了哈,。 01 安裝Flask 確保已經(jīng)安裝過python,可以用終端輸入: python --version 查看python安裝與否及其版本,,接下來在終端中輸入: pip install flask 安裝Flask,。 02 運(yùn)行最簡單的后端服務(wù) 在本機(jī)中新建一個(gè)學(xué)習(xí)用的文件夾,然后新建一個(gè)app.py文件,,輸入 啟動(dòng)app.py文件,,終端輸入: python app.py 可以看到終端輸出: * Running on http://127.0.0.1:5000/ 通過瀏覽器打開以上地址,即可看到hello world字樣,。 恭喜你,,已經(jīng)跨入python的大門了,??。 03 代碼注解及自己動(dòng)手修改例子: 初學(xué)一種語言或者庫,,最好直接在本機(jī)成功運(yùn)行官方或者最簡單的例子,,然后再逐漸的看懂每一句代碼,然后再多嘗試其他例子,,逐漸地根據(jù)自己的想象,,修改例子,不要急著去翻看繁雜的語言教程,,或者庫的api文檔,。 注:上手一門新技術(shù)的最好方法 以下部分適合要深入學(xué)習(xí),理解python及flask的初學(xué)者,,修改例子可以根據(jù)需要增加下面提到的一些內(nèi)容進(jìn)行嘗試: from flask import Flask #導(dǎo)入 Flask 類 app = Flask(__name__) ''' 創(chuàng)建一個(gè)該類的實(shí)例,,第一個(gè)參數(shù)是應(yīng)用模塊或者包的名稱。如果你使用單一的模塊(如本例),,你應(yīng)該使用 __name__ ,,因?yàn)槟K的名稱將會因其作為單獨(dú)應(yīng)用啟動(dòng)還是作為模塊導(dǎo)入而有不同。 ''' app.debug = True #開啟調(diào)試模式,,根據(jù)需要設(shè)置,。 @app.route('/') def hello_world(): return 'Hello World!' ''' 使用 route() 裝飾器告訴 Flask 什么樣 的URL 能觸發(fā)我們的函數(shù);這個(gè)函數(shù)的名字也在生成 URL 時(shí)被特定的函數(shù)采用,這個(gè)函數(shù)返回我們想 要顯示在用戶瀏覽器中的信息,。 ''' @app.route('/hello') def hello(): return 'Hello World' ''' 換個(gè)路徑試試,,瀏覽器輸入http://127.0.0.1:5000/hello ''' @app.route('/user/<username>') def show_user_profile(username): # show the user profile for that user return 'User %s' % username @app.route('/post/<int:post_id>') def show_post(post_id): # show the post with the given id, the id is an integer return 'Post %d' % post_id ''' 要給 URL 添加變量部分,你可以把這些特殊的字段標(biāo)記為 <variable_name> ,,這個(gè)部分將會作為命名參數(shù)傳遞到你的函數(shù),。規(guī)則可以用 <converter:variable_name> 指定一個(gè)可選的轉(zhuǎn)換器,比如上面的username及post_id就是變量名,,int表示為 integer類型的變量,。 ''' @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': do_the_login() else: show_the_login_form() #HTTP 方法,可以根據(jù)需要設(shè)置 if __name__ == '__main__': app.run(host='0.0.0.0',port=8888) ''' 用 run() 函數(shù)來讓應(yīng)用運(yùn)行在本地服務(wù)器上,。其中 if __name__ == '__main__': 確保服務(wù)器只會在該腳本被 Python 解釋器直接執(zhí)行的時(shí)候才會運(yùn)行,,而不是作為模塊導(dǎo)入的時(shí)候。 host='0.0.0.0',讓操作系統(tǒng)監(jiān)聽所有公網(wǎng) IP,成為外部可訪問的服務(wù)器,。 注意,,如果是在docker使用,需要app.run中傳入配置參數(shù),,讓操作系統(tǒng)監(jiān)聽所有公網(wǎng) IP,成為外部可訪問的服務(wù)器,,如 app.run(host='0.0.0.0',port=8888) port是端口,可以修改為任意端口,; 若是docker使用,,記得docker要把對應(yīng)的端口映射到主機(jī),。 docker是什么?暫時(shí)不清楚,,可以留意后續(xù)的更新,,或自行查閱。 ''' 參考文章: http://docs./docs/flask/quickstart.html#a-minimal-application 以上為全文,。 |
|