在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Django頁面重定向
Django Session會話
Django創(chuàng)建視圖
Django教程
Django表單處理
Django創(chuàng)建工程
Django Cookies處理
Django快速入門-表單
Django管理員界面
Django快速入門
Django通用視圖
Django緩存
Django Apache配置
Django發(fā)送E-mail
Django模板系統(tǒng)
Django模型
Django基礎
Django RSS
Django Ajax應用
Django快速入門-視圖
Django上傳文件
Django頁面重定向
Django開發(fā)環(huán)境安裝配置
Django快速入門-數據庫模型
Django URL映射
Django生命周期

Django頁面重定向

面重定向在Web應用程序有很多原因是必要的。您可能希望將用戶重定向到另一個頁面,當一個特定的動作發(fā)生,或者有錯誤的情況下。例如,當用戶登錄網站,他經常被重定向到他的主頁或個人的儀表板。在Django中,定向使用“redirect”的方法來實現。
在“redirect”方法需要作為參數:URL要被重定向到的字符串的視圖名字。

myapp/views 到現在為止如下所示 ?

def hello(request):
   today = datetime.datetime.now().date()
   daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
   return render(request, "hello.html", {"today" : today, "days_of_week" : daysOfWeek})
	
def viewArticle(request, articleId):
   """ A view that display an article based on his ID"""
   text = "Displaying article Number : %s" %articleId
   return HttpResponse(text)
	
def viewArticles(request, year, month):
   text = "Displaying articles of : %s/%s"%(year, month)
   return HttpResponse(text) 

讓我們修改hello,以重定向到 djangoproject.com ,以及 viewArticle 重定向到我們內部的 '/myapp/articles'。myapp/view.py將修改為如下: 

from django.shortcuts import render, redirect
from django.http import HttpResponse
import datetime

# Create your views here.
def hello(request):
   today = datetime.datetime.now().date()
   daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
   return redirect("https://www.djangoproject.com")
	
def viewArticle(request, articleId):
   """ A view that display an article based on his ID"""
   text = "Displaying article Number : %s" %articleId
   return redirect(viewArticles, year = "2045", month = "02")
	
def viewArticles(request, year, month):
   text = "Displaying articles of : %s/%s"%(year, month)
   return HttpResponse(text) 

在上面的例子中,我們首先從Django導入重定向(redirect)。快捷方式并重定向到Django的官方網站上,我們只需使用完整URL到“redirect”方法作為字符串,在第二例子(在viewArticle視圖)'redirect'方法取視圖名字和它的參數作為參數。

訪問/myapp/hello,會顯示如下的屏幕-

并訪問 /myapp/article/42,會給出下面的屏幕-

也可以指定“redirect”是否是暫時的還是永久性的,加入permanent = True參數。用戶看到不會有什么區(qū)別,但這些都是細節(jié),搜索引擎網站排名時考慮到。

我們在url.py定義“name”參數在映射URL時?

url(r'^articles/(?P\d{2})/(?P\d{4})/', 'viewArticles', name = 'articles'), 

該名稱(這里的文章)可以被用作“redirect”方法的實參,那么 viewArticle 重定向可以修改 -

def viewArticle(request, articleId):
   """ A view that display an article based on his ID"""
   text = "Displaying article Number : %s" %articleId
   return redirect(viewArticles, year = "2045", month = "02")

修改為 ?

def viewArticle(request, articleId):
   """ A view that display an article based on his ID"""
   text = "Displaying article Number : %s" %articleId
   return redirect(articles, year = "2045", month = "02") 

 - 還有一個函數生成 URL; 它是用在相同的方式重定向; “reverse”方法(django.core.urlresolvers.reverse)。這個函數不返回HttpResponseRedirect對象,而僅僅包含URL和任何傳入的參數編譯視圖的字符串。