zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    普通索引和唯一索引的选择
    深入理解MySQL索引(上)
    深入理解MySQL索引(下)
    Python3爬取小说并保存到文件
    MySQL45讲:一条update语句是怎样执行的
    IO软件层次结构与假脱机技术
    一条查询SQl是怎样执行的
    MySQL45讲笔记-事务隔离级别,为什么你改了数据我看不见
    了解一下IO控制器与控制方式
    3.6类别不平衡问题
  • 原文地址:https://www.cnblogs.com/Guishuzhe/p/10385191.html
Copyright © 2011-2022 走看看