我有一个项目,有两个应用程序,它们各自的视图,但我想views.py在django项目目录中创建一个www.example.com,用于一些通用页面,如关于,登录...将views.py和模板放在项目根文件夹中是否正确?
xesrikrc1#
我一直在阅读这个。更推荐的做法是创建一个在其他应用程序之间创建内聚的应用程序,称之为web_site或site,无论什么对你更好。
python manage.py startapp my_site
这个网站应用程序中的一切都将以常规方式完成。在项目的url中,你会希望以这种方式导入url,这样网页就显示在/ url模式中。
urlpatterns = [ path('admin/', admin.site.urls), path('', include('my_site.urls')) ]
30byixjq2#
我这样做的项目级页面,如你所描述的。这些通常是将项目的应用程序绑定在一起的简单页面,并且不包含任何业务逻辑。
w9apscun3#
这个问题似乎是一个观点问题,但我的看法是:只要“通用”页面非常简单,那么在项目根目录中实现它们可能会更好。实际上,如果网页是不需要特殊上下文数据的模板,您甚至可以取消views.py,只需在根urls.py中添加以下内容:
views.py
urls.py
path("", TemplateView.as_view(template_name="home.html"), name="home")
虽然@jogarcia的answer以内聚的名义主张一个单独的应用程序,但我认为有一种情况是,将这些简单的通用页面保留在“根”项目目录中实际上会使代码更具内聚性,因为它们是像settings.py这样的项目的基本和核心。这些页面倾向于以与根urls.py相同的方式链接到其他应用程序,因此它不应该增加耦合。如果“通用”页面开始有很多复杂的功能,那么单独的应用程序选项可能会变得更有吸引力。
settings.py
mcvgt66p4#
您可以通过将views.py文件添加到项目目录中来实现这一点。
from django.contrib import admin from django.urls import path, include from attendance import views urlpatterns = [ path('admin/', admin.site.urls), path('', include('insert.urls')), path('login/', views.logins, name='login'),# relevant line ]
这是登录视图的代码
from django.shortcuts import render from django.http import HttpResponse # Create your views here. def logins(request): return HttpResponse("THIS IS LOGIN PAGE !!!")
4条答案
按热度按时间xesrikrc1#
我一直在阅读这个。更推荐的做法是创建一个在其他应用程序之间创建内聚的应用程序,称之为web_site或site,无论什么对你更好。
这个网站应用程序中的一切都将以常规方式完成。在项目的url中,你会希望以这种方式导入url,这样网页就显示在/ url模式中。
30byixjq2#
我这样做的项目级页面,如你所描述的。这些通常是将项目的应用程序绑定在一起的简单页面,并且不包含任何业务逻辑。
w9apscun3#
这个问题似乎是一个观点问题,但我的看法是:只要“通用”页面非常简单,那么在项目根目录中实现它们可能会更好。实际上,如果网页是不需要特殊上下文数据的模板,您甚至可以取消
views.py
,只需在根urls.py
中添加以下内容:虽然@jogarcia的answer以内聚的名义主张一个单独的应用程序,但我认为有一种情况是,将这些简单的通用页面保留在“根”项目目录中实际上会使代码更具内聚性,因为它们是像
settings.py
这样的项目的基本和核心。这些页面倾向于以与根urls.py
相同的方式链接到其他应用程序,因此它不应该增加耦合。如果“通用”页面开始有很多复杂的功能,那么单独的应用程序选项可能会变得更有吸引力。
mcvgt66p4#
您可以通过将views.py文件添加到项目目录中来实现这一点。
这是登录视图的代码