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

資訊專欄INFORMATION COLUMN

Flask二之快速入門

XGBCCC / 1394人閱讀

摘要:一一個最小的應用是程序實例,一個項目只能有一個程序實例路由裝飾器視圖函數返回一個字符串把程序保存為用解釋器運行訪問,會看見問候。路由裝飾器這個函數的返回值稱為響應,是客戶端接收到的內容。

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

把程序保存為hello.py 用Python解釋器運行

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

訪問 http://127.0.0.1:5000/ ,會看見 Hello World 問候。欲關閉服務器,按 Ctrl+C。

這段代碼做了什么?

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

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

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

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

(1)調試模式

如果你啟用了調試支持,服務器會在代碼修改后自動重新載入,并在發生錯誤時提供一個相當有用的調試器。
有兩種途徑來啟用調試模式:
一種是直接在應用對象上設置:

app.debug = True
app.run()

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

app.run(debug=True)

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

交互式調試器絕對不能用于生產環境。

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

Hello world!

"

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

(3)變量規則
@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 類型也是字符串,但
不把斜線視作分隔符,而將其當作動態片段的一部分。
int | 接受整數
float | 接受浮點數
path | 和默認的相似,但也接受斜線
變量規則的意義:處理動態信息。
【注意】

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

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

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

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

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

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

(5)重定向和錯誤

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

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

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

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

(6)構造URL

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

@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. 反向構建通常比硬編碼的描述性更好。允許一次性修改 URL,而不用到處邊找邊改。
2. URL 構建會轉義特殊字符和 Unicode 數據,免去你很多麻煩。
(7)使用Flask-Script支持命令行選項

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

Flask-Script 擴展使用 pip 安裝:

(venv) $ pip install flask-script

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

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

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

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

標準命令:

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

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

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

相關文章

  • Spring 入門學習二之IOC

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

    Integ 評論0 收藏0
  • 零基礎如何學爬蟲技術

    摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0

發表評論

0條評論

XGBCCC

|高級講師

TA的文章

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