zoukankan      html  css  js  c++  java
  • 反向解析示例

    一、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>

    结果:

       

  • 相关阅读:
    模板方法模式
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    策略模式
    原型模式
    单例模式
    遍历一个二维数组的简便方法(减少foreach次数)
    数组最后一个元素的 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁
    PHP 中for循环的一个小小改进
  • 原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/12772932.html
Copyright © 2011-2022 走看看