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 正向解析与反向解析的主要内容,如果未能解决你的问题,请参考以下文章

Python3.6正向解析与反向解析域中主机

DNS的正向解析与反向解析

搭建DNS服务,正向解析和反向解析搭建DNS服务器

DNS(BIND) 正向解析   反向解析 基本服务的搭建

Linux中的DNS 正向解析与反向解析,轮询机制

搭建DNS服务-----正向解析反向解析泛域名解析。