Django 项目 实现重定向并进行反向解析

一.项目路由配置urls.py中

from django.conf.urls import include, url
from django.contrib import admin

# 匹配应用
urlpatterns = [
    url(r‘^admin/‘, include(admin.site.urls)),
    # 配置namespace 属性, 以便在视图中进行重定向时,定位对应的应用中,即使url改变了
    url(r‘^‘, include(‘goods.urls‘, namespace=‘goods‘)),  # 商品模块
]

二.应用路由配置urls.py中

# 匹配视图的方法
from django.conf.urls import url
from apps.goods import views
from apps.goods.views import IndexView, DetailView, ListView

urlpatterns = [    # 配置 name 属性,重定向时定位该视图中,即使url发生了改变
    url(r‘^index$‘, IndexView.as_view() ,name=‘index‘),  # 首页
]

三.某个视图文件views.py中

from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login, logout from django.views.generic import View from django.core.urlresolvers import reverse  # 用来进行反解析操作# 登出账号 /user/logout
class LogoutView(View):
    """退出登录"""
    def get(self, request):
        # django自带的认证系统功能,能登出账号
        logout(request)
        # 用户登出账号,将用户的访问页面重定向到首页,使用reverse()方法进行反向解析,‘goods:index‘对应的是项目路由配置urls.py中namespace属性和

     # 应用路由配置urls.py中name属性,所以,即使url发生了改变也能重定向到对应的视图中
     return redirect(reverse(‘goods:index‘))

原文地址:https://www.cnblogs.com/lowmanisbusy/p/9196850.html

时间: 2024-07-30 06:08:01

Django 项目 实现重定向并进行反向解析的相关文章

四十七、django路由匹配,分组,反向解析,路由分发,视图层

路由匹配: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^text', views.text), url(r'^testadd', views.testadd), ] 第一个参数是一个正则表达式,也就意味着在路由的匹配的时候,是按照正则匹配的规则去匹配, 路由匹配的顺序是从上往下依次匹配,所有如上两个路由test前面一样,第三个路由一直会匹配不上 正确写法: urlpatterns = [ url(r'^admin/', adm

反向解析与重定向 | Django开发

1.html中的反向解析 1.1 原理:给url起名字,根据url的名字找到对应的视图 {% url 'register' %} # 如果url匹配时携带参数: url(r'^index/(\d+)/$', views.index, name='index'), # 那么,在匹配到视图时就需要传入一个参数: def index(request,param): return render(request, 'index.html', {'param':param}) # 在页面中的url反向解析,

Django中模板总结[模板语言,模板继承,CSRF攻击,反向解析]

模板 概述 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观,而不是程序逻辑.模板的设计实现了业务逻辑view与显示内容template的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用. 创建模板文件夹 在项目的文件里面定义一个templates文件夹 在创建的文件夹里面再创建一个文件夹为每个应用的html文件夹 起名为和应用名同名的文

Django之url上的include,URL命名和反向解析,命名空间 以及图书管理系统删除功能二合一方法

include其他的URLconfs #At any point, your urlpatterns can "include" other URLconf modules. This #essentially "roots" a set of URLs below other ones. #For example, here's an excerpt of the URLconf for the Django website itself. #It include

Django学习【第2篇】:Django之反向解析

Django框架之第二篇 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). views:视图函数 另加urls:url路径与视图函数的映射关系,,可以不是一一对应的. 2.相关的一些命令 创建一个Django项目:django-admin  startproject  projectname 创建一个项目下的应用:python3  manage.py  startapp  appn

django URL反向解析和命名空间

一.反向解析URL 在实际的Django项目中,经常需要获取某条URL,为生成的内容配置URL链接. 比如,我要在页面上展示一列文章列表,每个条目都是个超级链接,点击就进入该文章的详细页面. 现在我们的urlconf是这么配置的:^post/(?P<id>\d+). 在前端中,这就需要为HTML的<a>标签的href属性提供一个诸如http://www.xxx.com/post/3的值.其中的域名部分,Django会帮你自动添加无须关心,我们关注的是post/3. 此时,一定不能硬

Django模板--反向解析

1.当某一个url配置的地址发生变化时,页面上使用反向解析生成地址的位置不需要发生变化 (1)根据url正则表达式的配置动态的生成url (2)在项目urls中包含具体应用的urls文件时指定namespace (3)在应用的urls.py文件的url中加name 2.在模板文件中使用 (1) 3.在重定向中使用 (1)格式 (2)例子 原文地址:http://blog.51cto.com/13742773/2345872

Django之url反向解析

在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图中的数据,项目不受影响正常执行!url标签中使用模板变量和普通标签参数一样,空格隔开,{{ % url   别名   %}}即可. urls.py文件设置: url(r'^url_reverse/', views.url_reverse,name="view_reverse"), url(

Python - Django - 命名 URL 和反向解析 URL

命名 URL: test.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试页面</title> </head> <body> <p>测试页面</p> <form action="/test/" method=&quo