最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Flask入門

 更新時(shí)間:2021年11月11日 17:13:24   作者:一只楚楚貓  
今天小編就為大家分享一篇Python Flask的入門教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

追溯到最初,F(xiàn)lask 誕生于 Armin Ronacher 在 2010 年愚人節(jié)開(kāi)的一個(gè)玩笑。后來(lái),它逐漸發(fā)展成為一個(gè)成熟的 Python Web 框架,越來(lái)越受到開(kāi)發(fā)者的喜愛(ài)。

Flask 是典型的微框架,作為 Web 框架來(lái)說(shuō),它僅保留了核心功能:請(qǐng)求響應(yīng)處理和模板渲染。這兩類功能分別由 Werkzeug(WSGI 工具庫(kù))完成和 Jinja(模板渲染庫(kù))完成。

主頁(yè)

主頁(yè)的 URL 一般就是根地址,即 / 。

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return 'Welcome to my web'
 if __name__=="__main__":
    app.run()

在這里插入圖片描述

現(xiàn)在打開(kāi)瀏覽器,訪問(wèn) http://localhost:5000 即可訪問(wèn)我們的程序主頁(yè)

分析代碼:

1、首先我們從 flask 包導(dǎo)入 Flask 類,通過(guò)實(shí)例化這個(gè)類,創(chuàng)建一個(gè)程序?qū)ο骯pp :

from flask import Flask
app = Flask(__name__)

2、接下來(lái),我們要注冊(cè)一個(gè)處理函數(shù),這個(gè)函數(shù)是處理某個(gè)請(qǐng)求的處理函數(shù),F(xiàn)lask官方把它叫做視圖函數(shù)(view funciton)。所謂的“注冊(cè)”,就是給這個(gè)函數(shù)戴上一個(gè)裝飾器帽子。我們使用 app.route() 裝
飾器來(lái)為這個(gè)函數(shù)綁定對(duì)應(yīng)的 URL,當(dāng)用戶在瀏覽器訪問(wèn)這個(gè) URL 的時(shí)候,就會(huì)觸發(fā)這個(gè)函數(shù),獲取返回值,并把返回值顯示到瀏覽器窗口:

@app.route('/')
def hello():
    return 'Welcome to my web'

提示:為了便于理解,你可以把 Web 程序看作是一堆這樣的視圖函數(shù)的集合:編寫不同的函數(shù)處理對(duì)應(yīng) URL 的請(qǐng)求。
填入 app.route() 裝飾器的第一個(gè)參數(shù)是 URL 規(guī)則字符串,這里的“/” 指的是根地址。我們只需要寫出相對(duì)地址,主機(jī)地址、端口號(hào)等都不需要寫出。所以說(shuō),這里的“/” 對(duì)應(yīng)的是主機(jī)名后面的路徑部分,完整 URL 就是 “http://localhost:5000/”。如果我們這里定義的 URL 規(guī)則是 “/hello” ,那么完整 URL 就是“http://localhost:5000/hello”。

整個(gè)請(qǐng)求的處理過(guò)程如下所示:

1.當(dāng)用戶在瀏覽器地址欄訪問(wèn)這個(gè)地址,在這里即 http://localhost:5000/

2. 服務(wù)器解析請(qǐng)求,發(fā)現(xiàn)請(qǐng)求 URL 匹配的 URL 規(guī)則是 / ,因此調(diào)用對(duì)應(yīng)的處
理函數(shù) hello()

3. 獲取 hello() 函數(shù)的返回值,處理后返回給客戶端(瀏覽器)

4. 瀏覽器接受響應(yīng),將其顯示在窗口上

修改視圖函數(shù)返回值

首先,你可以自由修改視圖函數(shù)的返回值,返回值作為響應(yīng)的主體,默認(rèn)會(huì)被瀏覽器作為 HTML 格式解析,所以我們可以添加一個(gè) HTML 元素標(biāo)記:

@app.route('/')
def hello():
    return '<h1>Hello Totoro!</h1><img src="http://helloflask.com/totoro.gif">'

保存修改后,只需要在瀏覽器里刷新頁(yè)面,你就會(huì)看到頁(yè)面上的內(nèi)容也會(huì)隨之變化。

修改 URL 規(guī)則

另外,你也可以自由修改傳入 app.route 裝飾器里的 URL 規(guī)則字符串,但要注意以斜線 / 作為開(kāi)頭。比如:

@app.route("/HelloWorld")
def hello_word():
    return "hello world"

保存修改,這時(shí)刷新瀏覽器,則會(huì)看到一個(gè) 404 錯(cuò)誤提示,提示頁(yè)面未找到(Page Not Found)。這是因?yàn)橐晥D函數(shù)的 URL 改成了 “/HelloWorld” ,而我們刷新后訪問(wèn)的地址仍然是舊的 “/” 。如果我們把訪問(wèn)地址改成“http://localhost:5000/home”,就會(huì)正確看到返回值。

一個(gè)視圖函數(shù)也可以綁定多個(gè) URL,這通過(guò)附加多個(gè)裝飾器實(shí)現(xiàn),比如:

@app.route('/')
@app.route('/index')
@app.route("/HelloWorld")
def hello_word():
    return "hello world"

現(xiàn)在無(wú)論是訪問(wèn) “http://localhost:5000/”、“http://localhost:5000/HelloWorld” 還是“http://localhost:5000/index” 都可以看到返回值。

在前面,我們之所以把傳入 app.route 裝飾器的參數(shù)稱為 URL 規(guī)則,是因?yàn)槲覀円部梢栽?URL 里定義變量部分。比如下面這個(gè)視圖函數(shù)會(huì)處理所有類似“/user/” 的請(qǐng)求:

app.route('/user/<name>')
def user_page(name):
    return 'User page'

不論你訪問(wèn) “http://localhost:5000/user/Tom”,還是“http://localhost:5000/user/Jerry”,都會(huì)觸發(fā)這個(gè)函數(shù)。通過(guò)下面的方式,我們也可以在視圖函數(shù)里獲取到這個(gè)變量值:

@app.route('/user/<name>')
def user_page(name):
    return 'User: %s' % name

修改視圖函數(shù)名

最后一個(gè)可以修改的部分就是視圖函數(shù)的名稱了。首先,視圖函數(shù)的名字是自由定義的,和 URL 規(guī)則無(wú)關(guān)。和定義其他函數(shù)或變量一樣,只需要讓它表達(dá)出所要處理頁(yè)面的含義即可。

除此之外,它還有一個(gè)重要的作用:作為代表某個(gè)路由的端點(diǎn)(endpoint),同時(shí)用來(lái)生成 URL。對(duì)于程序內(nèi)的 URL,為了避免手寫,F(xiàn)lask 提供了一個(gè) url_for函數(shù)來(lái)生成 URL,它接受的第一個(gè)參數(shù)就是端點(diǎn)值,默認(rèn)為視圖函數(shù)的名稱:

from flask import url_for, Flask
 app = Flask(__name__) 
@app.route('/')
def hello():
    return 'Hello' 
@app.route('/user/<name>')
def user_page(name):
    return 'User: %s' % name 
@app.route('/test')
def test_url_for():
    print(url_for('hello'))  # 輸出:/
    # 注意下面兩個(gè)調(diào)用是如何生成包含 URL 變量的 URL 的
    print(url_for('user_page', name='Tom'))  # 輸出:/user/Tom
    print(url_for('user_page', name='Jerry'))  # 輸出:/user/Jerry
    print(url_for('test_url_for'))  # 輸出:/test
    # 下面這個(gè)調(diào)用傳入了多余的關(guān)鍵字參數(shù),它們會(huì)被作為查詢字符串附加到 URL后面。
    print(url_for('test_url_for', number=2))  # 輸出:/test?number=2
    return 'Test page' 
if __name__=="__main__":
    app.run()

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python使用captcha制作驗(yàn)證碼的實(shí)現(xiàn)示例

    Python使用captcha制作驗(yàn)證碼的實(shí)現(xiàn)示例

    本文主要介紹了Python使用captcha制作驗(yàn)證碼的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • windows python嵌入式安裝全過(guò)程

    windows python嵌入式安裝全過(guò)程

    文章介紹了嵌入式安裝包的概念,包括嵌入式Python和如何創(chuàng)建嵌入式安裝包,嵌入式Python是一個(gè)精簡(jiǎn)版的Python解釋器,可以在沒(méi)有安裝Python的環(huán)境中運(yùn)行,文章還提供了下載和配置嵌入式Python的詳細(xì)步驟,包括從官網(wǎng)下載安裝包、下載get-pip.py、配置文件和環(huán)境變量等
    2024-11-11
  • Python使用sqlalchemy模塊連接數(shù)據(jù)庫(kù)操作示例

    Python使用sqlalchemy模塊連接數(shù)據(jù)庫(kù)操作示例

    這篇文章主要介紹了Python使用sqlalchemy模塊連接數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了sqlalchemy模塊的安裝及連接、調(diào)用數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Keras在訓(xùn)練期間可視化訓(xùn)練誤差和測(cè)試誤差實(shí)例

    Keras在訓(xùn)練期間可視化訓(xùn)練誤差和測(cè)試誤差實(shí)例

    這篇文章主要介紹了Keras在訓(xùn)練期間可視化訓(xùn)練誤差和測(cè)試誤差實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python 實(shí)現(xiàn)大整數(shù)乘法算法的示例代碼

    Python 實(shí)現(xiàn)大整數(shù)乘法算法的示例代碼

    這篇文章主要介紹了Python 實(shí)現(xiàn)大整數(shù)乘法算法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python實(shí)用庫(kù) PrettyTable 學(xué)習(xí)筆記

    Python實(shí)用庫(kù) PrettyTable 學(xué)習(xí)筆記

    這篇文章主要介紹了Python實(shí)用庫(kù) PrettyTable 學(xué)習(xí)筆記,結(jié)合實(shí)例形式分析了Python表格操作庫(kù)PrettyTable的安裝、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式

    python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-03-03
  • python去除文件中重復(fù)的行實(shí)例

    python去除文件中重復(fù)的行實(shí)例

    今天小編就為大家分享一篇python去除文件中重復(fù)的行實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python多進(jìn)程讀圖提取特征存npy

    python多進(jìn)程讀圖提取特征存npy

    這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程讀圖提取特征存npy,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè)

    Python雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè)

    雙端隊(duì)列 Deque 是一種有次序的數(shù)據(jù)集,跟隊(duì)列相似,其兩端可以稱作"首" 和 "尾"端。這篇文章將通過(guò)雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè),感興趣的可以學(xué)習(xí)一下
    2022-01-01

最新評(píng)論

宾阳县| 德格县| 饶阳县| 宜兰市| 建德市| 新郑市| 内黄县| 新化县| 龙山县| 若尔盖县| 渭源县| 古浪县| 南投县| 德格县| 南部县| 怀化市| 罗田县| 高淳县| 庄河市| 沙河市| 永宁县| 资兴市| 蚌埠市| 沙雅县| 福鼎市| 大埔区| 佛冈县| 清徐县| 常宁市| 屯门区| 即墨市| 尼勒克县| 丹寨县| 西乌珠穆沁旗| 扎赉特旗| 堆龙德庆县| 正宁县| 临江市| 鄢陵县| 湟源县| 清水河县|