欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Flask入門

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

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

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

主頁

主頁的 URL 一般就是根地址,即 / 。

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

在這里插入圖片描述

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

分析代碼:

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

from flask import Flask
app = Flask(__name__)

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

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

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

整個請求的處理過程如下所示:

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

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

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

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

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

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

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

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

修改 URL 規(guī)則

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

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

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

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

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

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

在前面,我們之所以把傳入 app.route 裝飾器的參數(shù)稱為 URL 規(guī)則,是因為我們也可以在 URL 里定義變量部分。比如下面這個視圖函數(shù)會處理所有類似“/user/” 的請求:

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

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

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

修改視圖函數(shù)名

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

除此之外,它還有一個重要的作用:作為代表某個路由的端點(endpoint),同時用來生成 URL。對于程序內(nèi)的 URL,為了避免手寫,F(xiàn)lask 提供了一個 url_for函數(shù)來生成 URL,它接受的第一個參數(shù)就是端點值,默認為視圖函數(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'))  # 輸出:/
    # 注意下面兩個調(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
    # 下面這個調(diào)用傳入了多余的關(guān)鍵字參數(shù),它們會被作為查詢字符串附加到 URL后面。
    print(url_for('test_url_for', number=2))  # 輸出:/test?number=2
    return 'Test page' 
if __name__=="__main__":
    app.run()

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • python生成word合同的實例方法

    python生成word合同的實例方法

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python生成word合同的實例方法相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • python模擬實現(xiàn)分發(fā)撲克牌

    python模擬實現(xiàn)分發(fā)撲克牌

    這篇文章主要為大家詳細介紹了python模擬實現(xiàn)分發(fā)撲克牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 關(guān)于python常見異常以及處理方法

    關(guān)于python常見異常以及處理方法

    這篇文章主要介紹了關(guān)于python常見異常以及處理方法,python用異常對象(exception object)來表示異常情況。遇到錯誤后,會引發(fā)異常,需要的朋友可以參考下
    2023-04-04
  • python遍歷文件夾找出文件夾后綴為py的文件方法

    python遍歷文件夾找出文件夾后綴為py的文件方法

    今天小編就為大家分享一篇python遍歷文件夾找出文件夾后綴為py的文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進行文本分類

    深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進行文本分類

    這篇文章主要為大家介紹了深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進行文本分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 詳解Python之Scrapy爬蟲教程NBA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫

    詳解Python之Scrapy爬蟲教程NBA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫

    這篇文章主要介紹了詳解Python之Scrapy爬蟲教程NBA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Django celery異步任務(wù)實現(xiàn)代碼示例

    Django celery異步任務(wù)實現(xiàn)代碼示例

    這篇文章主要介紹了Django celery異步任務(wù)實現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 淺談flask源碼之請求過程

    淺談flask源碼之請求過程

    這篇文章主要介紹了淺談flask源碼之請求過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 簡單了解python的一些位運算技巧

    簡單了解python的一些位運算技巧

    這篇文章主要介紹了簡單了解python的一些位運算技巧,位運算的性能大家想必是清楚的,效率絕對高。相信愛好源碼的同學(xué),在學(xué)習(xí)閱讀源碼的過程中會發(fā)現(xiàn)不少源碼使用了位運算,需要的朋友可以參考下
    2019-07-07
  • python實操案例練習(xí)(七)

    python實操案例練習(xí)(七)

    這篇文章主要介紹了python實操案例練習(xí),本文給大家分享的案例中主要任務(wù)有編寫程序?qū)崿F(xiàn)樂手彈奏樂器、使用面向?qū)ο笤O(shè)計自定義類,描述出租車和家用轎車的信息,需要的小伙伴可以參考一下
    2022-02-02

最新評論