Flask入門

最近接觸到python web中的Flask,需要學習一下基本用法,這裡做一個記錄。

安裝Flask

pip install flask

一、Hello World

接下來實現一個簡單的『Hello,World!,代碼如下:

from flask import Flask
app = Flask(__name__)

@app.route(/)
def index():
return <h1>Hello World</h1>

if __name__ == __main__:
app.run()

具體講解和注釋如下:

#1.首先導入Flask包,並創建一個Web應用實例"app",這裡的實例名稱為當前python的模塊名
from flask import Flask
app = Flask(__name__)

#2. 定義路由規則
#這裡指當地址為根路徑時,就調用下面的函數
@app.route(/)

#3. 處理請求
#當請求的地址符合路由規則時,就會進入該函數。在這個函數里,獲取請求的request對象,返回的內容為response.
#本例中返回對象為『hello world
def index():
return <h1>Hello,World!</h1>
#4.啟動Web伺服器
#當本python文件為程序入口時,通過"app.run()"啟動Web伺服器
if __name__ == __main__:
app.run()

#5. 如果遠程訪問,需要在"run()"中傳入"host=0.0.0.0","port=埠號"
#if __name__ == __main__:
# app.run(host = 0.0.0.0, port = 8888)

最後輸入"Running on 127.0.0.1:5000/ (Press CTRL+C to quit)",打開瀏覽器可以看到大寫的hello world

二、路由設置

1) 在之前代碼的基礎上,加上路由的參數

from flask import Flask
app = Flask(__name__)

#URL路徑中」/hello/」後面的參數被作為」hello()」函數的」name」參數傳了進來
@app.route(/hello/<name>)
def index(name):
return Hello %s %name

if __name__ == "__main__":
app.run()

在瀏覽器中輸入http://localhost:5000/hello/man,將在頁面上看到」Hello man」的字樣,man為傳入的參數。

2)可以在URL參數前添加轉換器來轉換參數類型

from flask import Flask
app = Flask(__name__)

@app.route(/user/<int:user_id>)
def get_user(user_id):
return User ID: %d %user_id

if __name__ == "__main__":
app.run()

在瀏覽器中輸入http://localhost:5000/user/123,將在頁面上看到」User ID: 123」的字樣,123為傳入的參數。

三、HTTP請求方法設置

HTTP請求方法常用的有Get, Post, Put, Delete。

1、POST 用於新建資源,服務端在指定的URL 上創建一個新的對象,將新資源的地址作為響應消息的一部分返回。

2、PUT 用於更新 URL上的一個資源,如果服務端允許,PUT 也可以用於新建一個資源。

3、GET 用於獲取 URL 資源的進行展示,GET 操作不應對服務端有任何影響。

4、DELETE 用於刪除指定的URL資源。

設置GET以及POST請求

from flask import Flask
from flask import request
app = Flask(__name__)

@app.route(/login, methods = [GET,POST])
def login():
if request.method == POST:
return This is a POST request.
else:
return This is a GET request.

if __name__ == "__main__":
app.run()

輸入請求地址」http://localhost:5000/login」,」GET」和」POST」請求會返回不同的內容。

四、錯誤處理

使用」abort()」函數可以直接退出請求,返回錯誤代碼,會顯示瀏覽器的404錯誤頁面。

from flask import Flask

app = Flask(__name__)

@app.route(/error)
def error():
abort(404)

if __name__ == __main__:
app.run()

暫時有很多沒有寫完,後續補充。

推薦閱讀:

TAG:Python框架 | Flask |