Django 中如何在 URL 路由中使用正则表达式捕获 URL 参数?

2023-04-11 00:00:00 参数 捕获 路由

在 Django 中,我们可以使用正则表达式捕获 URL 参数。具体步骤如下:

  1. 在 urls.py 中定义路由规则,使用正则表达式捕获参数。例如,如果要捕获 pidancode.com 和 皮蛋编程 两个字符串作为参数,可以使用如下代码:
from django.urls import path

from . import views

urlpatterns = [
    path('<str:slug>/', views.my_view),
    # slug 是捕获的参数,可以是任意字符串。 
]
  1. 在视图函数中接收参数。在上面的路由规则中,我们将参数捕获到 slug 中,在视图函数中可以通过 request 对象的 GET 方法获取参数的值。例如,如果我们要将参数值作为标题渲染到模板中,可以这样写:
from django.shortcuts import render

def my_view(request, slug):
    context = {'title': slug}
    return render(request, 'my_template.html', context)

在上面的代码中,slug 是路由定义中的捕获参数,my_template.html 是我们要渲染的模板文件,context 中的 title 是我们要传递给模板的参数值。

  1. 在模板中使用参数。在渲染模板时,我们可以将参数值传递给模板,供模板中使用。例如,在 my_template.html 中,我们可以这样使用 title 参数:
<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
</body>
</html>

在上面的模板中,我们通过 {{ title }} 的方式使用了传递进来的参数值。

以上就是在 Django 中使用正则表达式捕获 URL 参数的方法,希望能帮助到你。

相关文章