反向解析示例

Posted zh-xiaoyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向解析示例相关的知识,希望对你有一定的参考价值。

一、name命名示例

1、定义对应关系 

    url(r^home666/$, views.home, name="home"), # 给我的url匹配模式起名为 home
    url(r^test/$, views.test),

    # 什么都没有我们默认执行home函数
    url(r^$, views.home), 

2定义函数 

def home(request):
    return render(request, "home.html")

def test(request): return render(request, "test.html"
技术图片home.html
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>这是在HTML页面把URL写死的结局:</h1>
<a href="/home/">首页</a>
<h1>这是在HTML页面把利用反向解析URL的结局:</h1>
<a href="{% url ‘home‘ ‘house‘ %}">首页</a>


</body>
</html>
test.html

home在模板中的使用:

<h1>这是在HTML页面把URL写死的结局:</h1>
<a href="/home666/">首页</a>
<h1>这是在HTML页面把利用反向解析URL的结局:</h1>
<a href="{% url ‘home‘ %}">首页</a>

结果:

技术图片 

 

 当把home666改为home667时:

技术图片 

 结果为:

技术图片

  

以上就是给我们的URL匹配规则起个name名字,一个URL匹配模式起一个名字。

这样我们以后就不需要写死URL代码了,只需要通过名字来调用当前的URL!!!

 

二、name带有参数的示例

技术图片

1、定义对应关系 

# 分组匹配 捕获URL中的值并以位置参数形式传递给视图
url(r^home/([a-zA-Z]+)/$, views.home, name="home"),

# 分组命名匹配 捕获URL中的值并以关键字参数形式传递给视图
url(r^index/(?P<name>[a-zA-Z]+)/$, views.index, name="index"),

url(r^test/$, views.test),

2、定义相关函数

def home(request, arg):
    return render(request, "home.html")

def test(request):
    # 分组匹配:
    print("首页的url是:", reverse("home", args=("house",)))

    print("index的url是:", reverse("index", kwargs={"name": "yimi"}))
    return render(request, "test.html")


def index(request, name):
    print(name)
    return HttpResponse("这是index页面!!!")
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>这是首页!!!</h1>
</body>
</html>
home.html
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>这是在HTML页面把URL写死的结局:</h1>
<a href="/home/">首页</a>

<h1>这是在HTML页面把利用反向解析URL的结局:</h1>
<a href="{% url ‘home‘ ‘house‘ %}">首页</a>

<a href="{% url ‘index‘ ‘yimi‘ %}">index</a>

</body>
</html>
test.html
<h1>这是在HTML页面把URL写死的结局:</h1>
<a href="/home/">首页</a>

<h1>这是在HTML页面把利用反向解析URL的结局:</h1>
<a href="{% url ‘home‘ ‘house‘ %}">首页</a>

<a href="{% url ‘index‘ ‘yimi‘ %}">index</a>

结果:

技术图片

  技术图片 

以上是关于反向解析示例的主要内容,如果未能解决你的问题,请参考以下文章

Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'(示例代码

Django之URL反向解析

实现反向解析区域

Python中verbaim标签使用详解

Django运维后台的搭建之三:用url去精细定制与反向解析

如何使用片段反向移植?