一周學會Django5 Python Web開發-Django5路由重定向

鋒哥原創的Python?Web開發?Django5視頻教程:

2024版 Django5 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili2024版 Django5 Python web開發 視頻教程(無廢話版) 玩命更新中~共計25條視頻,包括:2024版 Django5 Python web開發 視頻教程(無廢話版) 玩命更新中~、第2講 Django5安裝、第3講 Django5創建項目(用命令方式)等,UP主更多精彩視頻,請關注UP賬號。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/重定向稱為HTTP協議重定向,也可以稱為網頁跳轉,它對應的HTTP狀態碼為301、302、303、307、308。簡單來說,網頁重定向就是在瀏覽器訪問某個網頁的時候,這個網頁不提供響應內容,而是自動跳轉到其他網址,由其他網址來生成響應內容。

Django的網頁重定向有兩種方式:

第一種方式是路由重定向;

第二種方式是自定義視圖的重定向。

兩種重定向方式各有優點,前者是使用Django內置的視圖類RedirectView實現的,默認支持HTTP的GET請求;后者是在自定義視圖的響應狀態設置重定向,能讓開發者實現多方面的開發需求。

我們分別用實例來演示下這兩種方式:

路由重定向

路由重定向方式,我們用RedirectView實現,在urls.py里面,我們再加一個路由代碼:

path('redirectTo', RedirectView.as_view(url="index/"))

請求redirectTo,直接重定向到 index/ 地址

運行測試,請求:

http://127.0.0.1:8000/redirectTo

自動重定向到index,狀態是302。

自定義視圖重定向

更多的情況,我們平時開發用的是自定義視圖重定向,視圖代碼里,通過邏輯判斷,通過redirect方法來實現具體的頁面重定向,使用更加靈活。

我們改造下前面的views.py下的blog函數:假如id是0,重定向到錯誤靜態頁面。

def blog(request, id):if id == 0:return redirect("/static/error.html")else:return HttpResponse('id是' + str(id) + "的博客頁面")

static目錄下新建一個error.html文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
系統運行有問題!
</body>
</html>

當然你也可以項目根目錄下再新建一個目錄,比如common,然后 STATICFILES_DIRS 靜態資源文件集合里,加下 BASE_DIR / "common",把error.html放到common目錄下,我們也是可以通過static/請求地址訪問的。當然如果你覺得static/請求名稱不好,也可以修改 STATIC_URL 參數 比如 改成 common/ 也行,你就可以通過 common/ 也訪問你的靜態資源文件。

我們訪問

http://127.0.0.1:8000/blog/0

302狀態,自動跳轉到了error.html錯誤頁面。

訪問其他id是正常的。

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

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

相關文章

代碼隨想錄算法訓練營第21天—回溯算法01 | ● 理論基礎 ● *77. 組合

理論基礎 回溯是一種純暴力搜索的方法&#xff0c;它和遞歸相輔相成&#xff0c;通常是執行完遞歸之后緊接著執行回溯相較于以往使用的for循環暴力搜索&#xff0c;回溯能解決更為復雜的問題&#xff0c;如以下的應用場景應用場景 組合問題 如一個集合{1,2,3,4}&#xff0c;找…

alibabacloud學習筆記06(小滴課堂)

講Sentinel流量控制詳細操作 基于并發線程進行限流配置實操 在瀏覽器打開快速刷新會報錯 基于并發線程進行限流配置實操 講解 微服務高可用利器Sentinel熔斷降級規則 講解服務調用常見的熔斷狀態和恢復 講解服務調用熔斷例子 我們寫一個帶異常的接口&#xff1a;

6-7年經驗的前端,回望這些年的風雨,都扛過來了~

前言 回望這6-7年的時光&#xff0c;不覺而已&#xff0c;有種閱盡千帆而過的感覺&#xff0c;可能人總在回頭看一些事情時都會有這種感覺吧。 傻人大學開始接觸計算機行業 大概10年前的我&#xff0c;填好志愿&#xff0c;拿到錄取通知書的那天&#xff0c;命運的齒輪就開始…

基于Spring Boot的學生評獎評優管理系統,計算機畢業設計(帶源碼+論文)

源碼獲取地址&#xff1a; 碼呢-一個專注于技術分享的博客平臺一個專注于技術分享的博客平臺,大家以共同學習,樂于分享,擁抱開源的價值觀進行學習交流http://www.xmbiao.cn/resource-details/1760641819451928577

python子域名收集工具

在網絡安全領域中&#xff0c;發現和管理攻擊面絕對是一項必須的任務&#xff0c;而對域名的尋找和分析是發現攻擊面的重要步驟。今天我們將與您分享關于域名發現的四種方法&#xff0c;并附帶Python示例代碼來幫助您更好的理解和掌握這些方法。 1. 主域名鏈式證書提取域名信息…

MySQL的安裝和備份

一、openEuler 二進制方式安裝MySQL 8.0.x 1、獲取軟件包 [rootLocalhost ~]# wget -c https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 2、創建用戶和組 [rootLocalhost ~]# groupadd -g 27 -r mysql [rootLocalhost ~]# useradd…

RisingWave的動態過濾器和時間過濾器的用法

動態過濾器 動態過濾器能夠實時過濾數據流&#xff0c;并允許定義傳入數據必須滿足的條件才能進行處理。 動態過濾器demo CREATE TABLE sales(id int ,profit_margin double ,PRIMARY KEY (id) );CREATE TABLE products(product_name string ,product_profit double);--返回…

如何切換到Ubuntu系統上來

上篇講到,使用Ubuntu系統能讓人帶來積極的影響,那么如何使用上這個系統呢?其實很多時候,不是不會安裝的技術問題,而是意愿或者心理障礙的問題。 以下是我使用ubuntu系統一年半的經驗,相信經過這三部分的介紹,可以幫助你了解linux系統的最新進展,克服使用困難,使用上U…

C# 讀取JSON文件

命名空間&#xff1a; using System.Text.Json.Nodes; 讀取JSON&#xff1a; // 讀取設置文件參數 JsonNode json JsonNode.Parse(File.ReadAllText(Environment.CurrentDirectory.Replace("\\bin\\Debug", "") "\\settings.json"))["a…

前端項目git提交規范配置

項目規范管理 目的 為了使團隊多人協作更加的規范&#xff0c;所以需要每次在 git 提交的時候&#xff0c;做一次硬性規范提交&#xff0c;規范 git 的提交信息 使用commitizen規范git提交(交互式提交 自定義提示文案 Commit規范) 安裝依賴 pnpm install -D commitizen c…

visual studio2022使用tensorRT配置

只記錄tensorRT在vs中使用時的配置&#xff0c;下載和安裝的 文章主頁自己尋找。 下載好TensorRT和對應的cuda之后&#xff0c;把tensorRT的鍛煉了和lib文件復制粘貼到cuda對應的文件夾中&#xff0c;以方便調用。 完成之后打開vs新建一個tensorRT的項目&#xff0c;然后開始配…

306_C++_QT_創建多個tag頁面,使用QMdiArea容器控件,每個頁面都是一個新的表格[或者其他]頁面

程序目的是可以打開多個styles文件(int后綴文件),且是tag樣式的(就是可以切多個頁面出來,并且能夠單獨關閉);其中讀取ini文件,將其插入到表格中的操作,也是比較復雜的,因為需要保持RGB字符串和前面的說明字符串對齊 ini文件舉例: [MainMenu] Foreground\Selected=&…

ElasticStack安裝(windows)

官網 : Elasticsearch 平臺 — 大規模查找實時答案 | Elastic Elasticsearch Elastic Stack(一套技術棧) 包含了數據的整合 >提取 >存儲 >使用&#xff0c;一整套! 各組件介紹: beats 套件:從各種不同類型的文件/應用中采集數據。比如:a,b,cd,e,aa,bb,ccLogstash:…

三年功能測試,測試工作吐槽

概述 大家好&#xff0c;我是洋子。有很多粉絲朋友目前還是在做功能測試&#xff0c;日常會遇到很多繁瑣&#xff0c;棘手的問題&#xff0c;今天分享一篇在testerhome社區的帖子《三年功能測試&#xff0c;測試工作吐槽》 原文鏈接https://testerhome.com/topics/38546 這篇文…

vue.js el-tooltip根據文字長度控制是否提示toolTip

一、需求&#xff1a;如何判斷當前文本文字是否超出文本長度&#xff0c;是否需要出現提示toolTip。效果圖如下&#xff1a; 二、實現&#xff1a; 1、表格字段鼠標放置el-popover出現 “引用主題” 的具體內容&#xff1b; <!-- 表格字段&#xff1a;引用主題 --> <…

【web | CTF】攻防世界 Web_php_unserialize

天命&#xff1a;這條反序列化題目也是比較特別&#xff0c;里面的漏洞知識點&#xff0c;在現在的php都被修復了 天命&#xff1a;而且這次反序列化的字符串數量跟其他題目不一樣 <?php class Demo { // 初始化給變量內容&#xff0c;也就是當前文件&#xff0c;高亮顯示…

代碼隨想錄 -- 字符串

文章目錄 反轉字符串描述題解 反轉字符串II描述題解 替換數字描述題解&#xff1a;replace函數題解&#xff1a;雙指針 翻轉字符串里的單詞描述題解 右旋字符串描述題解 實現 strStr()描述題解&#xff1a;暴力算法題解&#xff1a;KMP算法(懵懂) 重復的子字符串描述題解題解&a…

數據備份(上)

備份的意義 數據備份是容災的基礎&#xff0c;防止系統出現操作失誤或者遭受網絡攻擊導致數據丟失&#xff0c;為保證數據安全和業務連續性&#xff0c;有效的防護措施&#xff0c;對數據進行合理的備份、防范于未然。 面臨的威脅 去年2023年10月親自經歷客戶某網站無法訪問…

WEB-UI自動化測試實踐

&#x1f525; 交流討論&#xff1a;歡迎加入我們一起學習&#xff01; &#x1f525; 資源分享&#xff1a;耗時200小時精選的「軟件測試」資料包 &#x1f525; 教程推薦&#xff1a;火遍全網的《軟件測試》教程 &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1…

已解決的問題:BIOS中Enter鍵失效_BIOS中回車鍵沒反應

問題&#xff1a; 未解決的問題&#xff1a;BIOS中enter鍵失效_bios回車鍵沒反應-CSDN博客 問題復現&#xff1a; Windows7 關機 開機按F2進入BIOS 調整Boot Mode&#xff0c;按Enter建&#xff0c;Enter鍵失效 按F10&#xff0c;按Enter鍵&#xff0c;Enter鍵失效 按E…