如何在 Django 中使用 URL 条件处理?

2023-04-11 00:00:00 django 条件 如何在

在 Django 中,可以使用 URL 条件处理来根据不同的 URL 参数或路径,展示不同的内容或执行不同的操作。

以下是使用 URL 条件处理的示例代码:

  1. 在 urls.py 文件中定义 URL 路径和对应的视图函数:
from django.urls import path
from . import views

urlpatterns = [
    path('say_hello/', views.say_hello),
    path('welcome/<str:name>', views.welcome),
    path('search/', views.search),
]
  1. 编写视图函数,根据不同的 URL 条件处理展示不同的内容:
from django.shortcuts import render

def say_hello(request):
    return render(request, 'say_hello.html')

def welcome(request, name):
    if name == 'pidancode.com':
        message = 'Welcome, pidancode.com!'
    elif name == '皮蛋编程':
        message = '欢迎,皮蛋编程!'
    else:
        message = 'Welcome,{}!'.format(name)
    context = {'message': message}
    return render(request, 'welcome.html', context)

def search(request):
    query = request.GET.get('q', '')
    if query == 'pidancode.com':
        message = 'Search results for pidancode.com.'
    elif query == '皮蛋编程':
        message = '搜索结果:皮蛋编程。'
    else:
        message = 'No results found for "{}".'.format(query)
    context = {'message': message}
    return render(request, 'search.html', context)
  1. 编写 HTML 模板,使用 URL 条件处理展示不同的内容:
<!-- say_hello.html -->
<h1>Hello Django!</h1>

<!-- welcome.html -->
<h1>{{ message }}</h1>

<!-- search.html -->
<h1>Search Results:</h1>
<p>{{ message }}</p>

在上面的示例中,根据 URL 的路径和参数进行不同的处理,展示了不同的内容。例如,在访问 /welcome/pidancode.com 时,展示的信息是“Welcome, pidancode.com!”;在搜索关键词为“pidancode.com”时,搜索结果为“Search results for pidancode.com.”。

相关文章