溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

發(fā)布時間:2020-09-08 07:36:14 來源:腳本之家 閱讀:201 作者:Cytues 欄目:開發(fā)技術

本文實例講述了Flask框架學習筆記之路由和反向路由。分享給大家供大家參考,具體如下:

#-*- coding:utf-8 -*-
from flask import Flask, request, url_for
app = Flask(__name__)
# 路由
@app.route("/")
# 視圖函數
def index():
  return "<h2>Hello World!</h2>"
# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
  return "<h2>Hello User!</h2>"
# 動態(tài)路由。使用<>圈起來,輸入網址時輸入
@app.route("/users/<id>")
# 傳入id參數
def user_id(id):
  return "<h2>Hello user: " + id
# 也可以不傳參顯示動態(tài)參數
@app.route("/query_user")
def query_user():
  id = request.args.get('id')
  return "query_user: " + id
# 反向路由,通過視圖函數反導出url地址
@app.route("/query_url")
def query_url():
  return "query_url: " + url_for('query_user')
if __name__ == '__main__':
  app.run()

最基礎的路由:@app.route('/'),也為根路由,程序運行后使用瀏覽器打開http://127.0.0.1:5000/即可訪問。

# 路由
@app.route("/")
# 視圖函數
def index():
  return "<h2>Hello World!</h2>"

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

視圖函數就是被當前路由所修飾的函數,return返回html相關內容。

路由也可以修改當前的http方法來打開,flask路由默認的http方法是GET,這里使用methods=['POST']將http方法改為POST。

訪問網頁時要更改http方法:

# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
  return "<h2>Hello User!</h2>"

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

flask路由也可接受動態(tài)參數,動態(tài)參數需要使用<>包裹表示。

# 動態(tài)路由。使用<>圈起來,輸入網址時輸入
@app.route("/users/<id>")
# 傳入id參數
def user_id(id):
  return "<h2>Hello user: " + id

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

需要在網址后輸入任意合法的值來傳入動態(tài)參數。

也可以使用request方法實現動態(tài)參數傳遞。

# 也可以不傳參顯示動態(tài)參數
@app.route("/query_user")
def query_user():
  id = request.args.get('id')
  return "query_user: " + id

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

輸入網址時最后要加上?id=任意值,即可達到目的。

反路由通過視圖函數表現出url地址,需使用url_for方法指向一個url。

# 反向路由,通過視圖函數反導出url地址
@app.route("/query_url")
def query_url():
  return "query_url: " + url_for('query_user')

Flask框架學習筆記之路由和反向路由詳解【圖文與實例】

本質是根據函數名反向生成url,使用函數 url_for() 來針對一個特定的函數構建一個 URL。它能夠接受函數名作為第一參數,以及一些關鍵字參數, 每一個關鍵字參數對應于 URL 規(guī)則的變量部分。未知變量部分被插入到 URL 中作為查詢參數。

這里用到了chrome瀏覽器的一個postman插件,具體安裝方法參考https://segmentfault.com/a/1190000008512891

希望本文所述對大家基于flask框架的Python程序設計有所幫助。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI