成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

《FlaskWeb開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一-創(chuàng)新互聯(lián)

一、安裝

簡介:

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出輝南免費做網(wǎng)站回饋大家。
  • 在大多數(shù)標(biāo)準(zhǔn)匯總,F(xiàn)lask都算是小型框架,甚至可以成為“微框架”。同時具備高擴展的能力,具有一個包含基本服務(wù)的強健核心,其他功能可通過擴展實現(xiàn)。
  • 兩個主要依賴:路由、調(diào)試和Web服務(wù)器網(wǎng)關(guān)接口子系統(tǒng)有Werkzeug提供;模板系統(tǒng)由Jinja2提供。

1.1、使用虛擬環(huán)境

先將實驗文件從git的倉庫中下載到本地,并且切換到1a分支:

$ git clone https://github.com/miguelgrinberg/flasky.git
$ cd flasky
$ git checkout 1a

查看是否安裝了virtualenv(虛擬環(huán)境使用第三方實用工具):

virtualenv --version

結(jié)果顯示錯誤,則表示沒安裝,安裝命令:

pip install virtualenv

使用virtualenv命令在flasky文件夾中創(chuàng)建Python虛擬環(huán)境:

virtualenv venv

virtualenv命令中只要一個必須參數(shù),venv即是虛擬環(huán)境的名字。并且會創(chuàng)建一個子文件夾,所有與虛擬環(huán)境相關(guān)的文件都會保存在這個文件夾中。

  • 激活虛擬環(huán)境:
source vev/bin/activate

退出當(dāng)前虛擬環(huán)境,回到全局Python解釋器中:

deactivate

1.2、使用pip命令安裝Python包

進入flasky文件,激活虛擬環(huán)境,使用pip命令安裝Flask:

$ cd flasky
$ source venv/bin/activate
$ pip install flask

二、程序的基本結(jié)構(gòu)

2.1、初始化

所有Flask程序都必須創(chuàng)建一個程序?qū)嵗eb服務(wù)器使用一種WSGI的協(xié)議,把接收自客戶端的所有請求都交由這個對象處理。程序?qū)嵗荈lask類的對象。

from flask import Flask
app = Flask(__name__)

2.2、路由和視圖函數(shù)

客戶端把請求發(fā)送給Web服務(wù)器,Web服務(wù)器將請求發(fā)送給Flask程序?qū)嵗?。程序?qū)嵗枰灰烂總€URL請求運行那些代碼,即URL到Python函數(shù)的映射關(guān)系。
處理URL和Python函數(shù)之間的關(guān)系的程序成為路由
視圖函數(shù)返回的響應(yīng)可以包括HTML的簡單字符串,也可以是復(fù)雜的表單。

2.3、啟動服務(wù)器

程序?qū)嵗胷un方法啟動Flask集成的開發(fā)Web服務(wù)器:

if __name__ == “__main__”:
app.run(debug=True)

2.4、一個完整的程序

將前幾節(jié)介紹的Flask Web程序的不同組成部分合并到一個hello.py文件

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h2>Hello World!</h2>'

if __name__ == "__main__":
    app.run(debug=True)

切換到虛擬環(huán)境,執(zhí)行hello.py文件,啟動Flask程序:

《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一

  • 訪問Flask程序:
$: curl 127.0.0.1:5000

優(yōu)化成包含動態(tài)路由的Flask程序

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h2>Hello World!</h2>'

if __name__ == "__main__":
    app.run(debug=True)

測試效果

《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一

2.5、請求-響應(yīng)循環(huán)

2.5.1、程序和請求上下文

Flask從客戶端接收到的請求,要讓視圖函數(shù)訪問請求對象,一種顯而易見的方式就是將其作為參數(shù)傳入視圖函數(shù),不過導(dǎo)致程序中的每個視圖函數(shù)都會增加一個參數(shù)。
為了避免大量可有可無的參數(shù)把視圖函數(shù)弄的一團糟,F(xiàn)lask使用了上下文臨時把某些對象變?yōu)槿挚稍L問。

在Flask中有兩種上下文:程序上下文和請求上下文

  • 變量名 上下文 說明
  • current_app 程序上下文 當(dāng)前激活程序的實例
  • g 程序上下文 處理請求時用作臨時存儲的對象,每次請求都會重設(shè)這個變量
  • request 請求上下文 請求對象,封裝了客戶端發(fā)出的HTTP請求中的內(nèi)容
  • session 請求上下文 用戶會話,用于存儲請求之間需要“記住”的值的詞典。

2.5.2、請求調(diào)度

程序收到客戶端發(fā)送的請求,要找到處理該請求的視圖函數(shù)。
Flask會在程序的URL映射中查找請求的URL。URL映射是URL和視圖函數(shù)之間的對應(yīng)關(guān)系。
Flask使用app.route修飾器或者非修飾器形式的app.add_url_rule()生成映射。

  • 查看Flask程序中的URL映射:(激活虛擬環(huán)境)
>> >> from hello import app
>> app.url_map
Map([<Rule '/' (HEAD, OPTIONS, GET) -> index>,
 <Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
 <Rule '/user/<name>' (HEAD, OPTIONS, GET) -> user>])

URL映射中的HEAD、Options、GET是請求方法,由路由進行處理。

2.5.3、請求鉤子

有時候在處理請求之前或之后執(zhí)行代碼會很有用。請求鉤子使用修飾器實現(xiàn),F(xiàn)lask支持以下4種鉤子:

  • before_firest_request: 注冊一個函數(shù),在處理第一個請求之前運行
  • before_request: 注冊一個函數(shù),在每次請求執(zhí)勤啊運行
  • after_request: 注冊一個函數(shù),如果沒有未處理的異常拋出,在每次請求之后運行。
  • teardown_request: 注冊一個函數(shù),即使有未處理的異常拋出,也在每次請求之后運行。

2.5.4 響應(yīng)

在大多數(shù)情況下,響應(yīng)就是一個簡單的字符串,作為HTML頁面?zhèn)骰乜蛻舳?。但HTTP協(xié)議需要的不僅是作為請求響應(yīng)的字符串。
其中HTTP響應(yīng)中一個很重要的部分是狀態(tài)碼,F(xiàn)lask默認(rèn)為200.
make_response()函數(shù)可接受1個、2個或3個參數(shù),并返回一個Response對象。

from flask import make_response
@app_route(‘/’)
def index():
response = make_response(‘<h2>This document carries a cookie!</h2>’)
response.set_cookie(‘a(chǎn)nswer’,’42’)
return response
  • 重定向使用redirect()輔助函數(shù)
from flask import redirect 
@app.route(‘/’)
def index():
return redirect(“http://www.example.com”)

還有一種特殊的響應(yīng)有abort函數(shù)生成,用于處理錯誤。

2.6、Flask擴展

使用Flask-Script支持命令行選項
Flask-Script是一個Flask擴展,為Flask程序添加一個命令行解析器。Flask-Script自帶了一組常用選項,而且還支持自定義命令。

  • Flask-Script擴展使用pip安裝:
pip install flask-script
  • 示例把命令解析行功能添加到hello.py程序中需要修改的地方
from flask import Flask
from flask_script import Manager
app = Flask( __name__ )
manager = Manager( app )

@app.route(‘/’)
def index():
    return ‘<h2>hello,world</h2>’

@app.route(‘/user/<name>’)
def user(name):
    return ‘<h2>hello,%s!</h2>’ % name

if __name__ == “__main__”:
    manager.run()

如果已經(jīng)從git上克隆了該倉庫,可以直接切換到2c分支上。
這樣修改之后,程序可以使用一組基本命令行選項,現(xiàn)在運行hello.py

《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一

  • --host參數(shù)告訴Web服務(wù)器在哪個網(wǎng)絡(luò)接口上監(jiān)聽來自客戶端的連接。
  • --port參數(shù)告訴Web服務(wù)器在哪個網(wǎng)絡(luò)端口。
python hello.py runserver --host 0.0.0.0 --port 9999

《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

分享題目:《FlaskWeb開發(fā):基于Python的Web應(yīng)用開發(fā)實戰(zhàn)》筆記一-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article24/digice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)虛擬主機、App開發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站營銷標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
红河县| 武义县| 漾濞| 青阳县| 枝江市| 肥东县| 凤凰县| 姜堰市| 嘉义县| 巩义市| 桓仁| 会泽县| 德化县| 彰化市| 山东省| 武强县| 开封市| 乌恰县| 伊春市| 古田县| 昌黎县| 常熟市| 广昌县| 云梦县| 三穗县| 屯门区| 额尔古纳市| 金沙县| 呼图壁县| 五寨县| 岢岚县| 女性| 且末县| 荥经县| 金沙县| 湖南省| 崇明县| 万全县| 丰都县| 涟水县| 重庆市|