Django 正向解析与反向解析
Posted xcsg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 正向解析与反向解析相关的知识,希望对你有一定的参考价值。
正向解析就是按照顺序查找访问(urls.py---view--templates)
反向解析就是根据命名空间命名来调到指定的页面
1,创建urls
from django.urls import path,include,re_path from myapp.d2_views import Index from myapp.d3_views import Avgage from django.views.generic import TemplateView from myapp.d11_view import Test,Testrev,TestrevDict #声明命名空间 app_name = ‘myapp‘ urlpatterns = [ path(‘‘,TemplateView.as_view(template_name=‘index.html‘)), path("avgage",Avgage.as_view()), path("test",Test.as_view()), #反向解析 第二个参数,制定命名 re_path("^test_rev_(.+?)$",Testrev.as_view(),name="test_name"), #kwargs re_path("^test_dict_(?P<username>.+?)$",TestrevDict.as_view(),name="test_name_dict") ]
2,创建templates(index.html)
<a href="test">正向解析</a> {# 第一个参数命名空间 第二个自定义命名 456表示需要传递的参数#} <a href="{% url ‘myapp:test_name‘ 456 %}">反向解析</a> <a href="{% url ‘myapp:test_name_dict‘ username=55 %}">反向解析(kwargs)</a>
3,创建视图(views.py)
from django.http import HttpResponse,HttpResponseRedirect from django.views import View from myapp.models import Student from django.shortcuts import redirect,render #导入方向解析方法 from django.urls import reverse #定义类视图 class Test(View): def get(self,request): # 第一个参数命名空间 第二个自定义命名 return redirect(reverse(‘myapp:test_name_dict‘,kwargs={‘username‘:66})) return redirect(reverse(‘myapp:test_name‘,args=(789,))) return HttpResponseRedirect(reverse(‘myapp:test_name‘)) return HttpResponse(‘正向解析‘) #定义反向解析方法 class Testrev(View): def get(self,request,p1): print(p1) return HttpResponse(‘反向解析‘)
以上是关于Django 正向解析与反向解析的主要内容,如果未能解决你的问题,请参考以下文章