Python安裝Flask環(huán)境及簡單應(yīng)用示例
本文實例講述了Python安裝Flask環(huán)境及簡單應(yīng)用。分享給大家供大家參考,具體如下:
安裝環(huán)境
使用虛擬環(huán)境安裝Flask,可以避免包的混亂和版本的沖突,虛擬環(huán)境是Python解釋器的副本,在虛擬環(huán)境中你可以安裝擴展包,為每個程序單獨創(chuàng)建的虛擬環(huán)境,可以保證程序只能訪問虛擬環(huán)境中的包。而不會影響系統(tǒng)中安裝的全局Python解釋器,從而保證全局解釋器的整潔。
虛擬環(huán)境使用virtualenv創(chuàng)建,可以查看系統(tǒng)是否安裝了virtualenv:
$ virtualenv --version
安裝虛擬環(huán)境(須在聯(lián)網(wǎng)狀態(tài)下)
$ sudo pip install virtualenv $ sudo pip install virtualenvwrapper
創(chuàng)建虛擬環(huán)境(ubuntu里須在聯(lián)網(wǎng)狀態(tài)下)
$ mkvirtualenv Flask_py
進入虛擬環(huán)境
$ workon Flask_py
退出虛擬環(huán)境
如果所在環(huán)境為真實環(huán)境,會提示deactivate:未找到命令
$ deactivate Flask_py
安裝Flask
指定Flask版本安裝
$ pip install flask==0.10.1
Mac系統(tǒng):
$ easy_install flask==0.10.1
在ipython中測試安裝是否成功
$ from flask import Flask
Flask程序運行過程:
所有Flask程序必須有一個程序?qū)嵗?/p>
Flask調(diào)用視圖函數(shù)后,會將視圖函數(shù)的返回值作為響應(yīng)的內(nèi)容,返回給客戶端。一般情況下,響應(yīng)內(nèi)容主要是字符串和狀態(tài)碼。
當客戶端想要獲取資源時,一般會通過瀏覽器發(fā)起HTTP請求。此時,Web服務(wù)器使用WSGI(Web Server Gateway Interface)協(xié)議,把來自客戶端的所有請求都交給Flask程序?qū)嵗?,程序?qū)嵗褂肳erkzeug來做路由分發(fā)(URL請求和視圖函數(shù)之間的對應(yīng)關(guān)系)。根據(jù)每個URL請求,找到具體的視圖函數(shù)。 在Flask程序中,路由的實現(xiàn)一般是通過程序?qū)嵗难b飾器實現(xiàn)。通過調(diào)用視圖函數(shù),獲取到數(shù)據(jù)后,把數(shù)據(jù)傳入HTML模板文件中,模板引擎負責(zé)渲染HTTP響應(yīng)數(shù)據(jù),然后由Flask返回響應(yīng)數(shù)據(jù)給瀏覽器,最后瀏覽器處理返回的結(jié)果顯示給客戶端。
示例:
# 導(dǎo)入Flask類 from flask import Flask #Flask函數(shù)接收一個參數(shù)__name__,它會指向程序所在的模塊 app = Flask(__name__) # 裝飾器的作用是將路由映射到視圖函數(shù)index @app.route('/') def index(): return 'Hello World' # Flask應(yīng)用程序?qū)嵗膔un方法啟動WEB服務(wù)器 if __name__ == '__main__': app.run()
給路由傳參示例:
有時我們需要將同一類URL映射到同一個視圖函數(shù)處理,比如:使用同一個視圖函數(shù) 來顯示不同用戶的個人信息。
# 路由傳遞的參數(shù)默認當做string處理,這里指定int,尖括號中的內(nèi)容是動態(tài)的 @app.route('/user/<int:id>') def hello_itcast(id): return 'hello itcast %d' %id
返回狀態(tài)碼示例:
return后面可以自主定義狀態(tài)碼(即使這個狀態(tài)碼不存在)。當客戶端的請求已經(jīng)處理完成,由視圖函數(shù)決定返回給客戶端一個狀態(tài)碼,告知客戶端這次請求的處理結(jié)果。
@app.route('/') def hello_itcast(): return 'hello itcast',999
abort函數(shù):
如果在視圖函數(shù)執(zhí)行過程中,出現(xiàn)了異常錯誤,我們可以使用abort函數(shù)立即終止視圖函數(shù)的執(zhí)行。通過abort函數(shù),可以向前端返回一個http標準中存在的錯誤狀態(tài)碼,表示出現(xiàn)的錯誤信息。
使用abort拋出一個http標準中不存在的自定義的狀態(tài)碼,沒有實際意義。如果abort函數(shù)被觸發(fā),其后面的語句將不會執(zhí)行。其類似于python中raise。
from flask import Flask,abort @app.route('/') def hello_itcast(): abort(404) return 'hello itcast',999
重定向redirect示例
from flask import redirect @app.route('/') def hello_itcast(): return redirect('http://www.baidu.com')
正則URL示例:
from flask import Flask from werkzeug.routing import BaseConverter class Regex_url(BaseConverter): def __init__(self,url_map,*args): super(Regex_url,self).__init__(url_map) self.regex = args[0] app = Flask(__name__) app.url_map.converters['re'] = Regex_url @app.route('/user/<re("[a-z]{3}"):id>') def hello_itcast(id): return 'hello %s' %id
設(shè)置cookie和獲取cookie
from flask import Flask,make_response @app.route('/cookie') def set_cookie(): resp = make_response('this is to set cookie') resp.set_cookie('username', 'itcast') return resp
from flask import Flask,request #獲取cookie @app.route('/request') def resp_cookie(): resp = request.cookies.get('username') return resp
希望本文所述對大家基于flask框架的Python程序設(shè)計有所幫助。
- Flask之pipenv虛擬環(huán)境的實現(xiàn)
- Flask框架的學(xué)習(xí)指南之開發(fā)環(huán)境搭建
- Windows上使用virtualenv搭建Python+Flask開發(fā)環(huán)境
- Python2.7環(huán)境Flask框架安裝簡明教程【已測試】
- 深度定制Python的Flask框架開發(fā)環(huán)境的一些技巧總結(jié)
- 在阿里云服務(wù)器上配置CentOS+Nginx+Python+Flask環(huán)境
- 在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程
- Flask框架搭建虛擬環(huán)境的步驟分析
相關(guān)文章
Python+Pygame實戰(zhàn)之俄羅斯方塊游戲的實現(xiàn)
俄羅斯方塊,作為是一款家喻戶曉的游戲,陪伴70、80甚至90后,度過無憂的兒時歲月,它上手簡單能自由組合、拼接技巧也很多。本文就來用Python中的Pygame模塊實現(xiàn)這一經(jīng)典游戲,需要的可以參考一下2022-12-12Django對接elasticsearch實現(xiàn)全文檢索的示例代碼
搜索是很常用的功能,如果是千萬級的數(shù)據(jù)應(yīng)該怎么檢索,本文主要介紹了Django對接elasticsearch實現(xiàn)全文檢索的示例代碼,感興趣的可以了解一下2021-08-08Python+Matplotlib+LaTeX玩轉(zhuǎn)數(shù)學(xué)公式
這篇文章主要為大家介紹了如何在Matplotlib中使用LaTeX?公式和符號以及Python如何生成LaTeX數(shù)學(xué)公式。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-02-02python cv2讀取rtsp實時碼流按時生成連續(xù)視頻文件方式
今天小編就為大家分享一篇python cv2讀取rtsp實時碼流按時生成連續(xù)視頻文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12