django 之redirect()函数全解
Posted mahuang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 之redirect()函数全解相关的知识,希望对你有一定的参考价值。
参数可以是:
- 一个模型: 将调用模型的get_absolute_url()函数
- 一个视图, 可以带有函数: 可以使用urlresolvers.reverse来反向解析名称
- 一个绝对的或相对的URL, 将原封不动的作为重定向的位置.
默认返回一个临时的重定向, 传递permanent=True可以返回一个永久的重定向.
示例:
你可以用多种方式使用redirect()函数.
传递一个具体的ORM对象(了解即可).
将调用具体ORM对象的get_absolute_url()方法来获取重定向的URL.
1
2
3
4
5
6
|
from django.shortcuts import redirect def my_view(request): ... object = MyModel.objects.get(...) return redirect( object ) |
传递一个视图的名称
1
2
3
|
def my_view(request): ... return redirect( "some-view-name" , foo = "bar" ) |
传递要重定向到的一个具体的网址
1
2
3
|
def my_view(request): ... return redirect( "/some/url/" ) |
当然也可以是一个完整的网址
1
2
3
|
def my_view(request): ... return redirect( "http://example.com" ) |
默认情况下, redirect()返回一个临时重定向. 以上所有的形式都接收一个permanent参数; 如果设置为True, 将返回一个永久的重定向:
1
2
3
4
|
def my_view(request): ... object = MyModel.objects.get(...) return redirect( object , permanent = True ) |
0|1 扩展阅读:
临时重定向(响应状态码: 302)和永久重定向(响应状态码: 301)对普通用户来说是没什么区别的, 它主要面向的是搜索引擎的机器人。
A页面临时重定向B页面, 那搜索引擎收录的就是B页面。
以上是关于django 之redirect()函数全解的主要内容,如果未能解决你的问题,请参考以下文章