亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Flask二之快速入門

XGBCCC / 1496人閱讀

摘要:一一個最小的應(yīng)用是程序?qū)嵗粋€項目只能有一個程序?qū)嵗酚裳b飾器視圖函數(shù)返回一個字符串把程序保存為用解釋器運(yùn)行訪問,會看見問候。路由裝飾器這個函數(shù)的返回值稱為響應(yīng),是客戶端接收到的內(nèi)容。

一.一個最小的Flask應(yīng)用
from flask import Flask
app = Flask(__name__)
#app是程序?qū)嵗?,一個項目只能有一個程序?qū)嵗?@app.route("/")
#路由裝飾器
def hello_world():
#視圖函數(shù)
    return "Hello World!"    
    #返回一個字符串
if __name__ == "__main__":
    app.run()

把程序保存為hello.py 用Python解釋器運(yùn)行

$ python hello.py
    * Running on  http://127.0.0.1:5000/

訪問 http://127.0.0.1:5000/ ,會看見 Hello World 問候。欲關(guān)閉服務(wù)器,按 Ctrl+C。

這段代碼做了什么?

首先,我們導(dǎo)入了 Flask 類。這個類的實例將會是我們的 WSGI 應(yīng)用程序
2.接下來,我們創(chuàng)建一個該類的實例,第一個參數(shù)是應(yīng)用模塊或者包的名稱。 如果你使用單一的模

塊(如本例),你應(yīng)該使用 name ,因為模塊的名稱將會因其作為多帶帶應(yīng)用啟動還是作為模
塊導(dǎo)入而有不同( 也即是 "__main__" 或?qū)嶋H的導(dǎo)入名)。這是必須的,這樣 Flask 才知道到哪
去找模板、靜態(tài)文件等等。 詳情見 Flask的文檔。

然后,我們使用 route() 裝飾器告訴 Flask 什么樣的URL 能觸發(fā)我們的函數(shù)。
4.這個函數(shù)的名字也在生成 URL 時被特定的函數(shù)采用,這個函數(shù)返回我們想要顯示在用戶瀏覽器中

的信息。
5.最后我們用 run() 函數(shù)來讓應(yīng)用運(yùn)行在本地服務(wù)器上。 其中 if name =="__main__": 確保服務(wù)器
只會在該腳本被 Python 解釋器直接執(zhí)行的時候才會運(yùn)行,而不是作為模塊導(dǎo)入的時候。

(1)調(diào)試模式

如果你啟用了調(diào)試支持,服務(wù)器會在代碼修改后自動重新載入,并在發(fā)生錯誤時提供一個相當(dāng)有用的調(diào)試器。
有兩種途徑來啟用調(diào)試模式:
一種是直接在應(yīng)用對象上設(shè)置:

app.debug = True
app.run()

另一種是作為 run 方法的一個參數(shù)傳入:

app.run(debug=True)

兩種方法的效果完全相同。
【注意】

交互式調(diào)試器絕對不能用于生產(chǎn)環(huán)境。

(2)路由裝飾器
@app.route("/")
def index():
    return "Index"
    
@app.route("/hello/")
def hello():
    return "

Hello world!

"

這個函數(shù)的返回值稱為響應(yīng),是客戶端接收到的內(nèi)容。
像 index() 這樣的函數(shù)稱為視圖函數(shù)(view function)。視圖函數(shù)返回的響應(yīng)可
以是包含HTML 的簡單字符串,也可以是復(fù)雜的表單。

(3)變量規(guī)則
@app.route("/user/")
def showUserName(name):
    return "User %s" %name
    
@app.route("/post/")
def showPostId(post_id):
    return "Post %d" %post_id

Flask 支持在路由中使用 int、 float 和 path 類型。path 類型也是字符串,但
不把斜線視作分隔符,而將其當(dāng)作動態(tài)片段的一部分。
int | 接受整數(shù)
float | 接受浮點(diǎn)數(shù)
path | 和默認(rèn)的相似,但也接受斜線
變量規(guī)則的意義:處理動態(tài)信息。
【注意】

app.route()函數(shù)中中括號里的是變量名,必須與視圖函數(shù)的形參名一致!

如果是int或float類型,不能直接return!必須要轉(zhuǎn)換為字符串格式才可以,否
則會報錯:TypeError: "int" object is not callable

(4)唯一 URL / 重定向行為
@app.route("/about/") # 建議用法
# @app.route("/about") # 不建議用法
def about():
    return "The about page"

雖然它們看起來著實相似,但它們結(jié)尾斜線的使用在 URL 定義 中不同:

- 第一種情況中,指向 about的規(guī)范 URL 尾端有一個斜線。這種感覺很像在文件系
統(tǒng)中的文件夾。訪問一個結(jié)尾不帶斜線的 URL 會被 Flask 重定向到帶斜線的規(guī)范
URL 去。因此, 強(qiáng)烈建議統(tǒng)一加上斜線!
- 第二種情況的 URL 結(jié)尾不帶斜線,類似 UNIX-like 系統(tǒng)下的文件的路徑名。訪問
結(jié)尾帶斜線的URL 會產(chǎn)生一個 404 “Not Found” 錯誤。

這個行為使得在遺忘尾斜線時,允許關(guān)聯(lián)的 URL 接任工作,與 Apache 和其它的服
務(wù)器的行為并無二異。此外,也保證了 URL 的唯一,有助于避免搜索引擎索引同一
個頁面兩次。

(5)重定向和錯誤

用 redirect() 函數(shù)把用戶重定向到其它地方。

用 abort() 函數(shù)放棄請求并返回錯誤代碼。例如:

@app.route("/redir/")
def redir():
    return redirect("/login/")
@app.route("/login/")
def login():
    abort(401)

用戶會從/redir/重定向到一個不能訪問的頁面 (401 意味著禁止訪問)。

(6)構(gòu)造URL

用 url_for()來給指定的函數(shù)生成(構(gòu)造) URL。它接受函數(shù)名作為第一個參數(shù),
也接受對應(yīng) URL 規(guī)則的變量部分的命名參數(shù)。例如:

@app.route("/world/")
def world():
    # return redirect("/hello/")
    # return redirect(url_for("hello"))
    # return redirect(url_for("showUserName",name = "liusheng"))
    return redirect(url_for("showPostId", post_id = 100)) 
    # 注意這里的100可以是字符串也可以是整型

使用url_for()生成 URL 而非在模板中硬編碼的好處:

1. 反向構(gòu)建通常比硬編碼的描述性更好。允許一次性修改 URL,而不用到處邊找邊改。
2. URL 構(gòu)建會轉(zhuǎn)義特殊字符和 Unicode 數(shù)據(jù),免去你很多麻煩。
(7)使用Flask-Script支持命令行選項

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

Flask-Script 擴(kuò)展使用 pip 安裝:

(venv) $ pip install flask-script

把命令行解析功能添加到 hello.py 程序中時需要修改的地方:

from flask_script import Manager
manager = Manager(app)
if __name__ == "__main__":
    manager.run()

修改之后程序可以使用一組基本命令行選項來啟動 Web 服務(wù)器。:

python hello.py runserver
--host HOST  |設(shè)置host為 HOST
--port PORT  |設(shè)置port為 PORT
-d           |設(shè)置以debug模式運(yùn)行而非run模式
-r           |設(shè)置自動重新載入(app.debug為True)

標(biāo)準(zhǔn)命令:

python hello.py runserver -d -r --host 0.0.0.0
python hello.py runserver -d -r --port:5001

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/40798.html

相關(guān)文章

  • Spring 入門學(xué)習(xí)二之IOC

    摘要:今天來學(xué)習(xí)一包導(dǎo)入在官網(wǎng)下載開發(fā)包然后導(dǎo)入需要的包到項目目錄下。 今天來學(xué)習(xí)Spring ioc . 一、spring jar 包導(dǎo)入 在 spring 官網(wǎng)下載開發(fā)包 spring-framework-4.2.4.RELEASE,然后導(dǎo)入需要的 jar 包到項目 /lib/ 目錄下。 ?showImg(https://segmentfault.com/img/bVbbiyW?w=34...

    Integ 評論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0

發(fā)表評論

0條評論

XGBCCC

|高級講師

TA的文章

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