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日

相关文章

  • django 单表操作实例详解

    接下来我将为你详细讲解“django 单表操作实例详解”的完整攻略。 1. 操作表格 在 Django 中,我们可以通过模型类(Model)来操作数据库中的表格。下面是一些实例操作。 1.1 创建模型类 首先,我们需要在 Django 项目中创建一个模型类,用来描述我们要操作的数据库表格。比如,我们要创建一个名为Person的数据库表格,该表格有三个字段:i…

    Django 2023年5月16日
    00
  • Django使用celery异步发邮件

    Celery是Python开发的分布式任务调度模块,包含以下组件: Celery Beat: 任务调度器,自带的 Celery Worker: 执行任务的消费者,通常设置多个 Broker: 消息代理,就是任务队列,我们使用redis Producer: 任务生产者,要执行的函数加上@app.task Result Backend: 结果保存,还是redis…

    Django 2023年4月11日
    00
  • Python requests用法和django后台处理详解

    下面我将为你详细讲解“Python requests用法和django后台处理详解”的完整攻略,同时给出两个示例来说明。 Python requests用法 Python requests是一个流行的HTTP库,它可以用于向Web服务器发送HTTP请求,然后从Web服务器接收HTTP响应。以下是Python requests的一些常见用法: 发送HTTP G…

    Django 2023年5月16日
    00
  • Python的Django框架中模板碎片缓存简介

    Python的Django框架中模板碎片缓存简介 什么是模板碎片缓存? Django中的模板碎片缓存(Template Fragment Caching)是一种缓存技术,通过缓存模板的部分内容来提高网站的响应速度。在每次请求时,不必重新渲染整个页面,而是只需要重新渲染页面中发生变化的部分。 如何使用模板碎片缓存? 首先需要在settings.py中配置缓存:…

    Django 2023年5月16日
    00
  • 使用Django2快速开发Web项目的详细步骤

    使用Django2快速开发Web项目的详细步骤可以分为以下部分: 安装Django2 使用Django2前需要先安装它。如果你没有安装Django2,可以使用如下命令进行安装: pip install Django==2.x.x (其中2.x.x为Django2的版本号) 创建Django2项目 在安装完Django2之后,可以使用django-admin …

    Django 2023年5月16日
    00
  • Python Django请求和响应对象详解

    Python Django请求和响应对象详解 Django是目前非常流行的 Python Web 框架,其中请求和响应对象是开发中经常使用的对象。了解这两个对象的属性和用法可以帮助我们更好地理解Django的工作原理。 请求对象(HttpRequest) HttpRequest是Django中最重要的对象之一,用于封装来自客户端的HTTP请求。该对象包含了H…

    Django 2023年5月16日
    00
  • Django自带日志 settings.py文件配置方法

    关于“Django自带日志settings.py文件配置方法”的攻略,我可以帮您详细讲解以下几个方面: Django自带日志模块介绍 settings.py文件中配置Django日志的方式 示例说明 接下来我会从以上三个方面逐一介绍。 1. Django自带日志模块介绍 Django自带了一套简洁但灵活的日志模块,可以非常方便地帮助我们记录和追踪应用的日志信…

    Django 2023年5月16日
    00
  • Django ORM那些相关操作

    必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwa…

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