国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Flask學習

OnlyLing / 450人閱讀

摘要:服務器會根據將請求交給相應的程序處理。函數稱為視圖函數。無參數當訪問網站根域名時,會執行函數,返回值的結果會在網頁中顯示。。而返回特殊狀態碼可在返回值中添加,代碼如下返回特殊狀態碼鍵值對形式后的鍵值對由提供對象處理。

Web框架

Web框架是構建Web應用的一種方式。盡管現在很多語言如PHP、Java都能開發Web應用,這些語言也都有相應成熟的Web框架,但是請求處理是這些Web框架的核心。知乎問答-如何學習Web框架 提到Web框架涉及的基本元素,請求處理是學習Web框架的首要問題。

Flask框架

Flask 是一個用于 Python 的微型網絡開發框架。

Flask的‘微’體現在它只提供Web服務的基本功能,其他的功能是由Flask的擴展實現,用戶可以根據需求應用核心擴展。它的基本功能依賴于符合 WSGI 規范(Web Server Gateway Interface)的 Werkzeug 庫和模板系統 Jinja2
當我們通過URL訪問網站時,是向Web服務器發送了請求。服務器會根據URL將請求交給相應的Web程序處理。所以服務器與Web應用程序的交互需要一定的規則。而Python專用的規范是WSGI [PEP-3333定義],文章 WSGI簡介 給出了簡單說明。

Flask核心功能

Flask涉及到兩個重要的類——Flask和Blueprint[藍本] 類。
flask的應用程序需要Flask類實例化才能運行,網站的基本配置信息也包含在此類中。
實例化如下:

from flask import Flask
app = Flask(__name__)#__name__程序的文件名,通過此變量定位資源文件位置

配置如下:

app.config["CONFIGURATION"] = "CONFIGURATION"

Blueprint類與Flask類似,它能夠更好的組織Web應用程序,并能延遲Flask類實例的創建。

1. 路由和請求處理

路由的存在是為了將Web服務的請求轉交給Flask程序實例的函數處理,簡單的說處理URL和函數之間的關系稱為路由。函數稱為視圖函數
Flask類包含了route裝飾器,通過初始化Flask類注冊視圖函數。

無參數
@app.route("/")
def index():
    return "

Hellow World

"

當訪問網站根域名時,會執行index函數,返回值的結果會在網頁中顯示。。

帶參數

在很多時候用戶不同,使用的URL不同,帶參數的路由能夠很好的處理URL中變化的部分。如在網頁中顯示個人名字

@app.route("/user/")
def user(name):
    return "

Hello, {!r}

".format(name)

部分是可變部分,name將作為參數傳遞給視圖函數。此部分可以指定name 的類型,如@app.route("/user/")可指定參數類型
可指定的類型有int,float,path(路徑標識)

處理GET, POST請求
@app.route("/", methods=["GET", "POST"])
def index():
    pass

當網頁需要處理表單等請求時,需要添加methods,使得視圖函數能夠處理http請求。methods中的參數包括了Http協議中定義的5種動作。

響應處理
from flask import make_request
@app.route("/"):
    response = make_request("

Cookie

") response.set_cookie("answer","42") return response

響應處理中很重要的一部分是處理Http協議的狀態碼。Flask默認狀態碼是200。而返回特殊狀態碼可在返回值中添加,代碼如下:

@app.route("/")
def index():
    return "

Bad Request

", 400 #返回特殊狀態碼
“"?" + 鍵值對“ 形式

? 后的鍵值對由flask提供request對象處理。假設URL為127.0.0.1:5000?page=1

from flask import request

@app.route("/", methods=["GET"])
def index():
    page = request.args.get("page", type=int)
2. 異常處理

在瀏覽網頁時,可能會遇到一些錯誤,flask提供abort函數拋出錯誤,而拋出的異常會直接返回給Web服務器。我們也可以自定義處理這些異常。代碼如下:

from flask import abort
@app.route("/")
def index():
    abort(404) #拋出404異常
    
@app.errorhandler(404) 
def page_not_found(error): # 自定義處理異常
    return "This page does not exist", 404
3. 請求鉤子

請求鉤子是指在請求之前或之后所做的處理函數

函數名 功能
before_first_request 在處理第一個請求之前執行
before_request 每次請求之前執行
after_request 無異常,每次請求之后執行
teardown_request 即使異常,也在請求之后執行

請求鉤子函數與視圖函數之間通過g變量共享數據。

問題

Q1:如何調試Web應用程序?
Q2:如何評價Web應用程序的性能?
Q3:Web應用程序如何做單元測試?

學習資料

《Flask Web 開發》SegmentFault系列文章 - 作者只錄入了前七章內容,未涉及實例開發部分

《Flask Web 開發》中文版 - 建議入手第二版

《Flask Web 開發》作者Blog - 書中有任何疑問可以在文章中搜索

Flask大型教程項目Blog

Flask API文檔

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37783.html

相關文章

  • Flask學習資源整理

    摘要:學習資源中文學習大本營強烈推薦開發從小白開始學習資料推薦一些資源好文使用小結實例開發博客常用命令打包包中的依賴包安裝依賴包擴展為應用提供編寫腳本的功能。可以用來運行一個開發服務器,也可以與數據庫交互,方便開發。 學習資源 Python 中文學習大本營(Explore Flask強烈推薦) Flask 開發從小白開始 cnblog-Flask 學習資料 推薦一些Flask資源 Fl...

    KunMinX 評論0 收藏0
  • Web 開發學習筆記(1) --- 搭建你的第一個 Web Server

    摘要:簡介是一個輕量級的框架如果要學習開發非常適合作為我們學習的起點通過接下來的這一些列的博客我們將學習如何利用以及其他工具搭建一個簡單的網站開發環境命令如下第一個首先我們創建一個文件夾并在其中新建一個文件接著我們打開按照的示例 簡介 Flask 是一個輕量級的 Web 框架, 如果要學習 Web 開發, Flask 非常適合作為我們學習的起點. 通過接下來的這一些列的博客, 我們將學習如何...

    calx 評論0 收藏0
  • flask文檔學習筆記1-快速入門

    摘要:示例如下靜態路由使用動態變量的路由未指定變量類型使用動態變量的路由指定變量類型指定的路由變量,可以作為被裝飾的函數參數傳入進來。 開始決定認真的在網上寫一些東西,主要原因還是在于希望能提升學習效果。雖說python寫了有幾年,但是web后端框架的確沒怎么接觸過,買了本狗書寥寥草草的過了一遍,發現很多東西還是理解不深,真的是好記性不如爛筆頭,知識也要從基礎開始,退回來好好看看官方文檔,再...

    lingdududu 評論0 收藏0
  • 最終篇:簡潔易懂,初學者挑戰學習Python編程30天 (五)

    摘要:和是最受歡迎的。虛擬環境將允許將項目依賴項與本地機器依賴項隔離開來。文件將是項目中的主文件。運行后,檢查本地主機。在中創建一個名為的文件夾,并創建一個名為的文件夾。部署創建帳戶為前端和全棧應用程序提供免費部署服務。 ...

    1fe1se 評論0 收藏0

發表評論

0條評論

OnlyLing

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<