首页 > Web开发 > 详细

Django的url路由系统简介

时间:2019-02-15 18:34:08      阅读:291      评论:0      收藏:0      [点我收藏+]

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和伪静态结合

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>

 

Django的url路由系统简介

原文:https://www.cnblogs.com/Guishuzhe/p/10385191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!