• Django的url路由系统简介


    1.创建项目时的初始化值

    from django.conf.urls import url
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
    ]

    2.创建多个app时可以使用include()函数完成分流

    from django.conf.urls import url
    from django.contrib import admin
    from django.conf.urls import include
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^app01/', include("app01.urls")),
        url(r'^app02/', include("app02.urls")),
    ]

    3.引入视图函数完成url与函数的对应关系

    from django.conf.urls import url,include
    from django.contrib import admin
    from app01 import views
    
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/', views.index),
    ]

    4.给url取一个别名

    from django.conf.urls import url,include
    from django.contrib import admin
    from app01 import views
    
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/', views.index, name='别名'),
    ]

    5.正则匹配url和伪静态结合生成动态url

    from django.conf.urls import url,include
    from django.contrib import admin
    from app01 import views
    
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/(w+).html$', views.index),
    ]

    6.重点介绍一下Django里面url别名

    """url别名是Django才有的特性,通用标准还是在后端生成url再传递给html"""
    from django.shortcuts import render, HttpResponse
    from django.urls import reverse
    
    
    def index(request):
        """
        可以通过reverse反向查询url,在数据库层面则根据不同用户权限存储url别名
        :param request:
        :return:
        """
        # 1.在这里可以直接查询数据库获取url别名,然后传入render()
        url_list = [
            'url_one','url_two','url_three'
        ]
        # 2.url = reverse("url_one")  # 也可以通过别名直接反向获取url然后传入render()
        return render(request, 'index.html', {'url_list': url_list})
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <h1>菜单</h1>
        {% for i in user_list %}
            <a href="">c1</a>
        {% endfor %}
        <ul>
            {% for i in url_list %}
                {# 这里传入url直接放在双花括号中 #}
                <li>{{ i.id }} | <a href="{{ i }}">编辑</a></li>
                {# 如果是别名则是花括号加百分号和url反向生成url #}
                <li>{{ i.id }} | <a href="{% url i %}">编辑</a></li>
            {% endfor %}
        </ul>
    </body>
    </html>
  • 相关阅读:
    STM32 Cubemx 输出可调频率与占空比的PWM
    程序员必知的十大基础实用算法及其讲解
    [51单片机]18B20驱动函数
    《嵌入式怎么学?新人十问及解答》
    Google Chrome快捷键大全
    SSD、高级格式化硬盘,4K,分区,对齐,Ghost能不能用的解释用SSD的都可以看看
    资源下载
    Nexus Root Toolkit教程——刷机
    校园卡植入手机教程
    基于Visual c++ 2012的php扩展开发
  • 原文地址:https://www.cnblogs.com/Guishuzhe/p/10385191.html
Copyright © 2020-2023  润新知