我试图避免自我应对视图功能,但不知道该怎么做。 我的观点略有不同,绝对有办法 在这种情况下,使用单个功能呈现html页面。我尝试了网址“名称”值,但失败了。我只是从django开始,希望有经验的程序员能找到解决方案。谢谢您的帮助。
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name='index'),
path('about/', views.about, name='about'),
path('team/', views.team, name='team'),
path('contacts/', views.contacts, name='contacts'),
path('researches/', views.researches, name='researches'),
path('publications/', views.publications, name='publications'),
]
和
views.py
def index(request):
return render(request, 'website/index.html')
def about(request):
return render(request, 'website/about.html')
def team(request):
return render(request, 'website/team.html')
def publications(request):
return render(request, 'website/publications.html')
def researches(request):
return render(request, 'website/researches.html')
def contacts(request):
return render(request, 'website/contacts.html')
答案 0 :(得分:2)
您可以在URL中捕获一个标签,然后使用它确定要呈现的模板。
path('<slug:slug>', views.general_page, ...)
...
def general_page(request, slug):
return render(request, 'website/{}.html'.format(slug))
答案 1 :(得分:0)
如果您的网站是完全静态的,则可以考虑使用静态框架,例如Jekyll。
这样,您不必依赖主机服务器的功能,并且可以避免使用诸如django之类的复杂框架时可能出现的问题。
答案 2 :(得分:0)
我要感谢所有试图帮助我的人。 您的建议启发了我寻求解决方案。我在下面使用了代码,效果很好。 似乎不需要创建单独的视图,您可以使用TemplateView进行静态html文件呈现。那正是我想要的。
from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
path('', TemplateView.as_view(template_name='index.html'), name="index"),
path('about/', TemplateView.as_view(template_name='about.html'), name="about"),
path('team/', TemplateView.as_view(template_name='team.html'), name="team"),
path('contacts/', TemplateView.as_view(template_name='contacts.html'), name="contacts"),
path('researches/', TemplateView.as_view(template_name='researches.html'), name="researches"),
path('publications/', TemplateView.as_view(template_name='publications.html'), name="publications"),
]
答案 3 :(得分:0)
这对我有用,我在 url.py 中导入了 views.py。
from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name='index'),
path('about/', views.about, name='about'),
path('team/', views.team, name='team'),
path('contacts/', views.contacts, name='contacts'),
path('researches/', views.researches, name='researches'),
path('publications/', views.publications, name='publications'),
]
或
from layout.views import index,team,about ...
只需导入您所在文件夹的视图,在这种情况下,我从文件夹(应用程序)布局
导入视图