Flask的HTTP方法與模板_第1頁
Flask的HTTP方法與模板_第2頁
Flask的HTTP方法與模板_第3頁
Flask的HTTP方法與模板_第4頁
Flask的HTTP方法與模板_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Flask的HTTP方法與模板2知識(shí)目標(biāo)Flask的HTTP方法Flask的模板01能力目標(biāo)了解Flask的HTTP方法掌握Flask的模板02學(xué)習(xí)目標(biāo)3目錄01Flask的HTTP方法02Flask的模板Flask的HTTP方法4Http協(xié)議是萬維網(wǎng)中數(shù)據(jù)通信的基礎(chǔ)。在該協(xié)議中定義了從指定URL檢索數(shù)據(jù)的不同方法。下表總結(jié)了不同的http方法:序號(hào)方法與描述1GET以未加密的形式將數(shù)據(jù)發(fā)送到服務(wù)器。最常見的方法。2HEAD和GET方法相同,但沒有響應(yīng)體。3POST用于將HTML表單數(shù)據(jù)發(fā)送到服務(wù)器。POST方法接收的數(shù)據(jù)不由服務(wù)器緩存。4PUT用上傳的內(nèi)容替換目標(biāo)資源的所有當(dāng)前表示。5DELETE刪除由URL給出的目標(biāo)資源的所有當(dāng)前表示。Flask的HTTP方法5默認(rèn)情況下,F(xiàn)lask路由響應(yīng)GET請(qǐng)求。但是,可以通過為route()裝飾器提供方法參數(shù)來更改此首選項(xiàng)。為了演示在URL路由中使用POST方法,首先讓我們創(chuàng)建一個(gè)HTML表單,并使用POST方法將表單數(shù)據(jù)發(fā)送到URL。將以下腳本另存為login.htmlFlask的HTTP方法6現(xiàn)在在Pythonshell中輸入以下腳本:Flask的HTTP方法7開發(fā)服務(wù)器開始運(yùn)行后,在瀏覽器中打開login.html,在文本字段中輸入name,然后單擊提交。Flask的HTTP方法8表單數(shù)據(jù)將POST到表單標(biāo)簽的action子句中的URL。http://localhost/login映射到login()函數(shù)。由于服務(wù)器通過POST方法接收數(shù)據(jù),因此通過以下步驟獲得從表單數(shù)據(jù)獲得的“nm”參數(shù)的值:user=request.form['nm']它作為變量部分傳遞給'/success'URL。瀏覽器在窗口中顯示welcome消息。Flask的HTTP方法9在login.html中將方法參數(shù)更改為'GET',然后在瀏覽器中再次打開它。服務(wù)器上接收的數(shù)據(jù)是通過GET方法獲得的。通過以下的步驟獲得'nm'參數(shù)的值:User=request.args.get(‘nm’)這里,args是包含表單參數(shù)對(duì)及其對(duì)應(yīng)值對(duì)的列表的字典對(duì)象。與'nm'參數(shù)對(duì)應(yīng)的值將像之前一樣傳遞到'/success'URL。Flask的模板10可以以HTML的形式返回綁定到某個(gè)URL的函數(shù)的輸出。例如,在以下腳本中,hello()函數(shù)將使用標(biāo)簽呈現(xiàn)'HelloWorld'。Flask的模板11但是,從Python代碼生成HTML內(nèi)容很麻煩,尤其是在需要放置變量數(shù)據(jù)和Python語言元素(如條件或循環(huán))時(shí)。這需要經(jīng)常從HTML中轉(zhuǎn)義。這是可以利用Flask所基于的Jinja2模板引擎的地方。而不是從函數(shù)返回硬編碼HTML,可以通過render_template()函數(shù)呈現(xiàn)HTML文件。Flask的模板12Flask將嘗試在templates文件夾中找到HTML文件,該文件存在于此腳本所在的文件夾中。ApplicationfolderHello.pytemplateshello.html術(shù)語‘webtemplatingsystem(web模板系統(tǒng))’指的是設(shè)計(jì)一個(gè)HTML腳本,其中可以動(dòng)態(tài)插入變量數(shù)據(jù)。web模板系統(tǒng)包括模板引擎,某種數(shù)據(jù)源和模板處理器。Flask使用jinga2模板引擎。Web模板包含用于變量和表達(dá)式(在這些情況下為Python表達(dá)式)的HTML語法散布占位符,這些是在呈現(xiàn)模板時(shí)替換的值。Flask的模板13以下代碼在templates文件夾中另存為hello.html。Flask的模板14接下來,從Pythonshell運(yùn)行以下腳本:當(dāng)開發(fā)服務(wù)器開始運(yùn)行時(shí),打開瀏覽器并輸入U(xiǎn)RL-http://localhost:5000/hello/mvlURL的變量部分插入{{name}}占位符。Flask的模板15Jinja2模板引擎使用以下分隔符從HTML轉(zhuǎn)義。{%...%}用于語句{{...}}用于表達(dá)式可以打印到模板輸出{#...#}用于未包含在模板輸出中的注釋#...##用于行語句Flask的模板16在下面的示例中,演示了在模板中使用條件語句。hello()函數(shù)的URL規(guī)則接受整數(shù)參數(shù)。它被傳遞到hello.html模板。其中,比較接收的數(shù)字(marks)的值(大于或小于50),因此有條件地呈現(xiàn)HTML。Python腳本如下:Flask的模板17hello.html的HTML模板腳本如下:請(qǐng)注意,條件語句if-else和endif包含在分隔符{%..%}中。運(yùn)行Python腳本并訪問URLhttp://localhost/hello/60,然后訪問http://localhost/hello/30,以查看HTML的輸出是否有條件地更改。Flask的模板18Python循環(huán)結(jié)構(gòu)也可以在模板中使用。在以下腳本中,當(dāng)在瀏覽器中打開URLhttp://localhost:5000/result時(shí),result()函數(shù)會(huì)將字典對(duì)象發(fā)送到模板results.html。result.html的Template部分使用for循環(huán)將字典對(duì)象result{}的鍵和值對(duì)呈現(xiàn)為HTML表的單元格。從Pythonshell運(yùn)行以下代碼:Flask的模板19將以下HTML腳本保存為templates文件夾中的result.html:Flask的模板

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論