如何在 Django 中进行基于类的 URL 分发?

2023-04-11 00:00:00 django 分发 如何在

在 Django 中进行基于类的 URL 分发,通常需要以下步骤:

  1. 定义视图类

视图类可以直接继承 Django 的现有视图类,如 TemplateViewListView 等,也可以自定义类。这里以自定义类为例:

from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request):
        return HttpResponse("Hello, world!")
  1. 定义 URL 规则

在 Django 2.0 及以上版本中,可以使用 path() 函数来定义基于类的 URL 规则。需要注意的是,需要在视图类名后面加上 .as_view() 方法来将视图类转换为视图函数。例如:

from django.urls import path
from .views import MyView

urlpatterns = [
    path('hello/', MyView.as_view(), name='myview'),
]

以上 URL 规则会将 /hello/ 路径映射到 MyView 类的 get() 方法上,从而实现页面的呈现。

  1. 调用 URL 规则

在需要调用该页面的视图函数中,可以使用 reverse() 函数来生成 URL,例如:

from django.urls import reverse

def my_view(request):
    myurl = reverse('myview')
    return redirect(myurl)

以上示例会生成 /hello/ 的 URL 并重定向到该页面。

总结起来,基于类的 URL 分发在 Django 中的步骤为定义视图类、定义 URL 规则和调用 URL 规则。通过这种方式,可以将视图代码与 URL 规则分离,达到代码解耦和重用的目的。

相关文章