Django零基础入门之路由path和re_path详解

我将详细讲解“Django零基础入门之路由path和re_path详解”的完整攻略,包括两条示例说明。

什么是Django路由?

Django路由是负责将 URL 转化为视图的函数或方法的机制。路由将 URL 映射到相应的视图上,以处理用户发出的请求。 Django路由规则都存储在每一个应用的 urls.py 文件中。

path路由

在 Django 2.0 后,引入了 path() 来代替原来的 url() 函数作为路由。用法如下:

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.say_hello, name='hello'),
]
  • path() 函数接收两个必需的参数:路由规则和视图函数。
  • 第三个参数是一个可选的参数,表示该 URL 的 name 属性。
  • URL 路由中的末尾斜杠非常重要,如果在 URL 的字符串末尾添加了一个斜线,它会导致 Django 无法匹配 URL。

re_path路由

当path() 无法满足你的路由需求时,就可以用到 re_path() 函数。它接受的第一个参数是正则表达式,后面的参数可选。其中,第二个参数是视图函数,之后是 URL 的 name 属性。如下所示:

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'hello/(?P<name>\w+)/', views.say_hello, name='hello'),
]

正则表达式中的 name 是一个特殊的行为,它告诉 Django 提取匹配 URL 的部分并作为参数发送给视图函数。例如,上面的示例中,say_hello() 视图会接收到名为 name 的参数。

两个示例

接下来,我将介绍两个示例,用来说明 path 路由和 re_path 路由的具体用法。

示例一:path路由

在这个示例中,我们需要做的事情是在浏览器中输入以下网址:http://127.0.0.1/hello,然后会看到 ”Hello World!“ 的输出。

在 urls.py 文件中添加如下路由:

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.say_hello, name='hello'),
]

在 views.py 文件中添加如下视图:

from django.http import HttpResponse

def say_hello(request):
    return HttpResponse('Hello World!')

最后,在浏览器中访问 http://127.0.0.1/hello 即可看到 “Hello World!” 的输出。

示例二:re_path路由

在这个示例中,我们会动态添加一个名字参数,所以准备的 URL 将会是 http://127.0.0.1/hello/John,然后将会看到 ”Hello John!“ 的输出。

在 urls.py 文件中添加如下路由:

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'hello/(?P<name>\w+)/', views.say_hello, name='hello'),
]

在 views.py 文件中添加如下视图:

from django.http import HttpResponse

def say_hello(request, name):
    return HttpResponse(f'Hello {name.capitalize()}!')

最后,在浏览器中访问 http://127.0.0.1/hello/John 即可看到 “Hello John!” 的输出。

这就是本篇攻略的全部内容。希望本文能够帮助你了解 Django 中路由的用法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django零基础入门之路由path和re_path详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Python Django 开发 3 数据库CURD

    上一篇表建好后开始对数据进行CURD操作 dos输入: >>>python manage.py shell 以下的命令都是在shell中测试 (C)增: 1 >>>import myLesson import Blog 2 >>>b = Blog(name = ‘Frist Blog’, tagline …

    Django 2023年4月16日
    00
  • Django请求之HTTP请求

    —恢复内容开始— 请求响应Http   1发送Http请求   2 服务器接收,根据请求头中的URL在路由关系表中进行匹配(从上向下)   3匹配成功后,,执行指定的views函数,     一个URL 对应一个函数——–>这个叫FBV模式     一个URL对应一个类 ———->这个叫CBV模式     4 业务处…

    Django 2023年4月11日
    00
  • 简介Django中内置的一些中间件

    针对这个话题,我给您提供以下完整的攻略: 简介Django中内置的一些中间件 Django是一个提供Web应用程序开发框架的Python框架。它提供了许多功能和工具,其中一项很重要的功能是中间件。Django中的中间件是可插拔的组件,可以自定义请求和响应的处理方法。在Django中,许多内置的中间件可用于快速实现常见的功能,同时也可作为参考使用自定义中间件的…

    Django 2023年5月16日
    00
  • django允许外部访问的实例讲解

    下面是关于“django允许外部访问的实例讲解”的完整攻略,包含两条示例说明。 一、背景介绍 在使用Django框架开发Web应用时,我们经常需要部署Web应用到服务器上,以便用户能够通过浏览器访问我们的Web应用。在部署过程中,有时我们需要让外部用户也能够访问我们的Web应用。本文将介绍如何让Django允许外部访问实例的方法,以及两个示例说明。 二、让D…

    Django 2023年5月16日
    00
  • Django Rest Framework之用户频率/访问次数限制

      settings.py: REST_FRAMEWORK = { ‘DEFAULT_THROTTLE_CLASSES’:[‘api.utils.mythrottle.UserThrottle’,] ‘DEFAULT_THROTTLE_RATES’: { ‘未认证用户’: ’10/m’, ‘已认证用户’: ‘100/h’, }, }   mythrottle…

    2023年4月9日
    00
  • Django加载配置的过程详解

    下面我将为你详细讲解Django加载配置的过程,并提供两个示例说明。 一、Django加载配置的过程 Django加载配置的过程分为以下几个步骤: 1. 执行manage.py 当我们执行python manage.py时,Django会加载manage.py文件,并进入django.core.management.execute_from_command_…

    Django 2023年5月16日
    00
  • [Django_1_2]数据库设置

    本篇将介绍Django中的数据库设置,了解模型(models,数据库中的表项设计)。上一篇文章为:<a href=”http://www.cnblogs.com/guoyunzhe/p/5778295.html”, target=”_blank”> Django 第一个app 选择数据库类型 Django默认使用的是SQLite,同时还支持MyS…

    Django 2023年4月13日
    00
  • Django 自定义权限管理系统详解(通过中间件认证)

    下面我将详细讲解“Django 自定义权限管理系统详解(通过中间件认证)”的完整攻略,并且包含两条示例说明。 1. 安装 Django 和创建项目 首先,我们需要安装 Django,并创建一个新项目: pip install django django-admin startproject mysite 2. 创建应用并添加模型 接着,创建一个新的应用,并在…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部