如何在 Django 中创建多个视图?

在本文中将提供一些最重要的示例如何在 Django 中创建多个视图。
让我们谈谈如何在django中将视图拆分为多个文件。
如果您对 Django 将视图拆分为多个文件有疑问,那么我将给出简单的示例和解决方案。

分享给大家django split views into multiple files。
让我们看看下面的例子,django 中的多个视图。

大多数时候,您可以开发单独的模块来执行视图外的处理工作,导入它们,然后在视图内使用它们的功能。

有时您可以将工作分配给多个应用程序。显然,当它有意义时。但偶尔,观看次数会增加。在这种情况下,您可能希望将视图分成单独的文件。

在这里,我简单地逐步解释了如何在 Django 中创建多个视图的示例。

第 1 步:创建项目

在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:

 django-admin startproject example 

第 2 步:创建应用

现在我们将创建一个名为core的应用程序来存储帖子名称列表。我们故意保持基本的东西。使用Control+c停止本地服务器并使用startapp命令创建这个新应用程序。

 python manage.py startapp core 

第 3 步:应用程序目录

我们的应用程序目录结构如下所示:

|∙∙core/
  |∙∙__init__.py
  |∙∙admin.py
  |∙∙migrations/
  |∙∙models.py
  |∙∙tests.py
  |∙∙urls.py
  |∙∙views.py

第 4 步:创建视图

在这一步中,我们需要配置四种不同的视图打开core/views.py文件,添加:
core/views.py

from django.shortcuts import render

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

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

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

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

第 5 步:创建 URL

在此步骤中,我们需要配置四个不同的 url 使用文本编辑器创建 core/urls.py 并粘贴以下代码。
core/urls.py

from django.urls import re_path
import .views

urlpatterns = [
    re_path(r'^aaa$', views.view_1, name='view_1'),
    re_path(r'^bbb$', views.view_2, name='view_2'),
    re_path(r'^ccc$', views.view_3, name='view_3'),
    re_path(r'^ddd$', views.view_4, name='view_4'),
]

第 6 步:拆分视图

如果您正在修改代码库,这种方法很好。您不必以这种方式改变您管理urls.py的方式。视图函数仍然可以通过views.view_a a 访问,即使它们位于单独的文件中。

删除views.py文件并创建一个名为 views 的目录。在其中添加一个__init__.py文件并创建分离的视图文件。

|∙∙core/
  |∙∙__init__.py
  |∙∙admin.py
  |∙∙migrations/
  |∙∙models.py
  |∙∙tests.py
  |∙∙urls.py
  |∙∙views/
    |∙∙__init__.py
    |∙∙one.py
    |∙∙two.py

views/__init__.py

导入包含在每个视图文件中的每个模块是关键的一步。

from .one import *
from .two import *

views/one.py

from django.shortcuts import render

def view_a(request):
    return render(request, 'view_1.html')

def view_b(request):
    return render(request, 'view_2.html')

views/two.py

from django.shortcuts import render

def view_c(request):
    return render(request, 'view_3.html')

def view_d(request):
    return render(request, 'view_4.html')

这方面无需更改;您可以直接从各种文件导入视图。视图函数的位置实际上与 Django 无关。同样,名称 views 不是必需的,但建议使用。

在下面的示例中,您可以将views/__init__.py保持为空,因为我们直接导入视图。

from django.urls import re_path
from .views import one
from .views import two

urlpatterns = [
    re_path(r'^aaa$', one.view_1, name='view_1'),
    re_path(r'^bbb$', one.view_2, name='view_2'),
    re_path(r'^ccc$', two.view_3, name='view_3'),
    re_path(r'^ddd$', two.view_4, name='view_4'),
]

我希望它能帮助你……

发表评论

邮箱地址不会被公开。 必填项已用*标注