返回

拥抱 Django 的路由和请求:掌控 Web 请求之路

后端

Django 教程(四):路由与请求

引言

在 Django 的世界中,路由和请求是至关重要的概念,它们决定了应用程序如何响应来自 Web 客户端的请求。在这个教程的第四部分,我们将深入探讨路由机制,了解如何获取请求参数以及如何使用视图函数来处理请求。

路由:理解 Web 请求的路线图

Django 使用 URL 配置文件来定义如何将 URL 请求映射到特定的视图函数。每个 URL 模式由正则表达式定义,该表达式匹配传入的 URL,并指定要调用的视图函数。

例如:

# urls.py
from django.urls import path
from myapp import views

urlpatterns = [
    path('blog/', views.blog_view),
    path('blog/<int:post_id>/', views.post_view),
]

在上面的示例中,blog/ URL 模式将匹配所有以 /blog/ 开头的 URL,并将其映射到 blog_view 视图函数。blog/<int:post_id>/ 模式匹配包含整数 post_id 的 URL,并将其传递给 post_view 视图函数。

请求:获取 Web 客户端数据

当客户端向 Django 应用程序发送请求时,它附带有关该请求的信息,例如 HTTP 方法、头和正文。Django 提供了一个 HttpRequest 对象来访问这些信息。

获取请求参数:

请求参数可以通过以下方式获取:

  • GET 参数: 从 URL 查询字符串中获取,使用 request.GET 字典。
  • POST 参数: 从请求正文中获取,使用 request.POST 字典。
  • 路径参数: 从 URL 模式中捕获,作为视图函数的参数传递。

例如:

def post_view(request, post_id):
    # 获取 GET 参数
    title = request.GET.get('title')

    # 获取 POST 参数
    body = request.POST.get('body')

    # 使用路径参数
    post = get_post(post_id)

视图函数:处理请求

视图函数是 Python 函数,用于处理 Django 请求。它们接收 HttpRequest 对象作为第一个参数,并根据请求的内容返回响应。视图函数可以执行以下操作:

  • 渲染 HTML 模板
  • 返回 JSON 数据
  • 重定向到另一个 URL
  • 处理表单提交

总结

Django 的路由和请求机制是应用程序与 Web 客户端交互的核心部分。通过理解如何定义路由、获取请求参数和处理请求,开发人员可以构建强大的、响应迅速的 Web 应用程序。