Flask 路由與視圖函數綁定機制

Flask 路由與視圖函數綁定機制

核心概念

在 Flask 框架中,路由(Route) 是連接 URL 路徑與 Python 函數的橋梁,通過 @app.route() 裝飾器實現這種綁定關系,使得當用戶訪問特定 URL 時,對應的函數會被自動調用。

工作原理

  1. 裝飾器綁定

    • 使用 @app.route('URL路徑') 裝飾器修飾函數
    • 裝飾器會在 Flask 應用初始化時,將函數與指定 URL 路徑關聯起來
    • 內部維護一張"URL路徑→函數"的映射表
  2. 請求處理流程

    用戶訪問 URL → Flask 解析路徑 → 查找映射表 → 執行對應函數 → 返回結果給瀏覽器
    

代碼示例

from flask import Flask
app = Flask(__name__)# 將根路徑 '/' 與 hello_world() 函數綁定
@app.route('/')
def hello_world():return 'Hello World!'# 將 '/user' 路徑與 show_user() 函數綁定
@app.route('/user')
def show_user():return 'This is user page'if __name__ == '__main__':app.run()  # 啟動服務器,開始監聽請求

訪問效果

訪問的URL觸發執行的函數瀏覽器顯示內容
http://127.0.0.1:5000/hello_world()Hello World!
http://127.0.0.1:5000/usershow_user()This is user page

關鍵特點

  • 無需顯式調用:視圖函數不需要手動調用,由 Flask 框架在收到對應請求時自動觸發
  • 靈活的路徑配置:可通過裝飾器為不同函數配置不同路徑
  • 開發便捷性:開發者只需關注"訪問該路徑時返回什么內容",無需處理底層請求解析邏輯

擴展知識

  • 一個函數可以綁定多個 URL 路徑
    @app.route('/')
    @app.route('/home')
    def home():return 'Welcome to homepage'
    
  • 支持動態 URL 路徑(帶參數)
    @app.route('/user/<username>')
    def show_profile(username):return f'User: {username}'
    

通過這種機制,Flask 實現了 URL 路徑與業務邏輯的解耦,讓 Web 開發更加直觀高效。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93627.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring 的 setter 注入可以解決某些類型的循環依賴問題

參考&#xff1a;https://blog.csdn.net/weixin_50055999/article/details/147493914?utm_sourceminiapp_weixin Setter 方法注入 (Setter Injection) 在類中提供一個 setter 方法&#xff0c;并在該方法上使用 Autowired、Resource 等注解。 代碼示例 import org.springfr…

數據結構代碼分享-5 鏈式棧

linkstack.c#include<stdio.h> #include<stdlib.h> #include"linkstack.h" //1.創建一個空的棧 void CreateEpLinkStack(linkstack_t **ptop) {*ptop NULL; } //2.入棧,ptop是傳入的棧針的地址&#xff0c;data是入棧的數據 int pushLinkStack(linkstac…

數學建模Topsis法筆記

評價決策類-Topsis法學習筆記 問題的提出 生活中我們常常要進行評價&#xff0c;上一篇中的層次分析法&#xff0c;通過確定各指標的權重&#xff0c;來進行打分&#xff0c;但層次分析法決策層不能太多&#xff0c;而且構造判斷矩陣相對主觀。那有沒有別的方法呢&#xff1f…

石英加速度計為何成為行業標桿?

在石油鉆井、航空航天、工業自動化等領域&#xff0c;高精度、高可靠性的加速度測量至關重要。ER-QA-03F系列石英撓性加速度計憑借其卓越的性能和穩定的表現&#xff0c;成為靜態與動態測試的理想選擇。自2012年推出以來&#xff0c;該產品已交付數千臺&#xff0c;并在石油鉆井…

HP Pavilion G6 筆記本使用ventoy啟動安裝Ubuntu 22.04 桌面版

HP Pavilion G6 筆記本是很老的筆記本了&#xff0c;淘到一款&#xff0c;成色比較新&#xff0c;使用i5 3210 M cpu &#xff0c;內存是2G*2&#xff0c;正好手邊有一條4G內存條&#xff0c;替換一條后擴充為6G內存&#xff0c;感覺可以再戰10年&#xff01;&#xff08;當然6…

STM32G4 Park及反Park變換(二)實驗

目錄 一、STM32G4 Park及反Park變換(二)實驗 1 Park及反Park變換 1.1 代碼 1.2 上位機實驗結果 附學習參考網址 歡迎大家有問題評論交流 (* ^ ω ^) 一、STM32G4 Park及反Park變換(二)實驗 1 Park及反Park變換 本文介紹了基于STM32G4的Park及反Park變換實驗過程。主要內容…

pgsql 如何查詢今天范圍內的數據(當天0點0分0秒 - 當天23點59分59秒....)

使用 CURRENT_DATE 函數CURRENT_DATE 返回當前日期&#xff08;不含時間部分&#xff09;。當它在查詢中與 timestamp 字段比較時&#xff0c;會自動被視為當天的開始&#xff0c;即 YYYY-MM-DD 00:00:00。CURRENT_DATE INTERVAL 1 day 計算出第二天的開始時間&#xff0c;即 …

DRM驅動架構淺析-上(DRM基礎概要與U-Boot階段驅動解析)

一、背景 近期項目吃緊&#xff0c;接了不少調屏相關的需求&#xff0c;期間磕磕絆絆&#xff0c;但總算完成要求。回首過往&#xff0c;調試過多種屏幕&#xff0c;包括LVDS、EDP、MIPI、MI轉EDP或是轉LVDS、DP以及HDMI等常見屏。在Rockchip平臺調外設也有段時間矣&#xff0…

idea中如何設置文件的編碼格式

目錄 一、全局與項目編碼配置 二、新項目預配置 一、全局與項目編碼配置 File --> Settings --> Editor --> File Encodings Global Encoding&#xff1a;設置為UTF-8&#xff0c;影響IDE界面及新建文件的默認編碼。??Project Encoding&#xff1a;選擇UTF-8&am…

2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(六)

本文主要回顧2025年上半年(2025-5-24)系統架構設計師考試上午綜合知識科目的選擇題,同時附帶參考答案、解析和所涉知識點。 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(一) 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(…

Ubuntu22系統上源碼部署LLamaFactory+微調模型 教程【親測成功】

0.LLamaFactory LLaMA-Factory 是一個開源的低代碼大模型訓練與微調框架&#xff0c;旨在簡化大規模語言模型&#xff08;LLM&#xff09;的微調、評估和部署流程&#xff0c;幫助開發者和研究人員更高效地定制和優化模型。 1.安裝部署 1.1克隆倉庫 git clone --depth 1 ht…

打靶日常-sql注入(手工+sqlmap)

小知識: 注入點:在哪里輸入sgl指令中的參數 執行點:在那個頁面拼接sql指令并發送給數據庫執行 回顯點:執行的結果顯示在哪個頁面 sqlmap知識點: 輸出等級 -v3 范圍0-6 默認1 一般3 考試3 測試等級 --level=1 范圍…

繞過服務端文件上傳檢測:黑名單繞過技術與實戰

繞過服務端文件上傳檢測&#xff1a;黑名單繞過技術與實戰文件上傳漏洞是Web安全中常見且危害極大的漏洞類型之一&#xff0c;而黑名單機制是最基礎的防御手段。本文將深入探討三種經典的黑名單繞過技術&#xff0c;并提供實戰案例與防御方案。引言 文件上傳功能是現代Web應用的…

在職老D滲透日記day21:sqli-labs靶場通關(第27a關)get聯合注入 過濾select和union “閉合

5.27a.第27a關 get聯合注入 過濾select和union "閉合function blacklist($id) { $id preg_replace(/[\/\*]/,"", $id); //strip out /* $id preg_replace(/[--]/,"", $id); //Strip out --. $id preg_replace(/[#]/,"", $id); //Strip …

Git#cherry-pick

場景 項目里有多個分支&#xff0c;在某個分支commit內容想要應用到當前分支 命令 git cherry-pick --helpgit cherry-pick commit-ish&#xff1a;某個其他分支的commit應用到當前所在分支 (默認自動提交)git cherry-pick -n commit-ish&#xff1a;–no-commit(不自動提交)&a…

極海APM32F107V6 gpio模擬串口

一、原理部分 之前用外設都是直接用的硬件自帶的庫&#xff0c;雖然以前有學過原理和時序&#xff0c;但是因為工作其實也很少會有需要gpio模擬串口的情況&#xff0c;但總會有串口用完&#xff0c;但是需要一個類似打印串口的情況。今天也是開整&#xff0c;然后用硬件的庫對…

【數據可視化-94】2025 亞洲杯總決賽數據可視化分析:澳大利亞隊 vs 中國隊

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

鏈表基本運算詳解:查找、插入、刪除及特殊鏈表

在上一篇文章中&#xff0c;我們介紹了線性表的基本概念和順序存儲。本文將深入探討單鏈表的基本運算&#xff0c;并介紹循環鏈表和雙向鏈表這兩種特殊的鏈表結構&#xff0c;幫助讀者全面掌握鏈表的操作技巧。 文章目錄1.單鏈表基本運算鏈表的查找操作按序號查找按值查找鏈表的…

8.19作業

1.聊天室1.1服務器#include <myhead.h> #define SER_PORT 8888 #define SER_IP "192.168.174.128"struct msg {char type;char usrname[20];char msgtext[1024]; };int main(int argc, const char *argv[]) {int sfd socket(AF_INET,SOCK_STREAM,0);if (sfd-1…

95、23種設計模式之建造者模式(4/23)

建造者模式&#xff08;Builder Pattern&#xff09;是23種經典設計模式中的創建型模式之一&#xff0c;其核心思想是將復雜對象的構建過程與其表示分離&#xff0c;使得同樣的構建流程可以生成不同結構或配置的對象。以下從定義、結構、應用場景、優缺點及代碼示例展開分析&am…