You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django教程进阶:如何将/films页面内容迁移至网站首页?

解决将Django Films页面内容迁移至首页的问题

看起来你已经离目标很近了!问题出在项目根URL配置(mysite.urls.py)没有为首页(根路径/)绑定任何视图,所以访问http://127.0.0.1:8000/时会返回404。下面提供两种符合你需求的解决方案,你可以根据实际情况选择:

方案一:保留原有/films路径,同时让首页显示Films列表

这个方案适合你想同时保留/films路径访问列表,并且让首页也展示相同内容的场景:

  1. 打开mysite.urls.py,先导入films应用的views模块:
from films import views
  1. 在urlpatterns最顶部添加根路径的配置,将其指向你已经写好的index视图:
urlpatterns = [
    url(r'^$', views.index, name='home'),  # 根路径匹配空字符串,绑定index视图
    url(r'^films/', include('films.urls')),
    url(r'^admin/', admin.site.urls),
]

这里的r'^$'是正则表达式,匹配空的路径(也就是首页),这样访问根路径时就会调用films.views.index,展示你写好的电影列表。

方案二:将Films应用的所有路径迁移至根路径(原/films路径不再生效)

如果你希望彻底把Films的内容移到根路径,比如首页是列表,/5/对应详情页,可以这样修改:

修改mysite.urls.py,把原来的url(r'^films/', include('films.urls'))替换成:

urlpatterns = [
    url(r'^', include('films.urls')),  # 根路径开始的所有请求都走films.urls
    url(r'^admin/', admin.site.urls),
]

这样films.urls.py里的空路径就会对应首页,<int:film_id>/对应/5/这样的详情页。不过要注意,这样原来的/films/路径就无法访问了,所有Films相关的路径都直接在根路径下。

额外注意点

  • 如果你使用的是Django 2.0+的path()语法(更推荐),根路径的配置可以写成path('', views.index, name='home'),不需要正则表达式。
  • 你的index.html模板里的链接/films/{{ film.id }}/在方案一中可以正常使用;如果选择方案二,需要把链接改成/{{ film.id }}/才能正确跳转。

现在重启Django开发服务器,访问首页就能看到电影列表啦!

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:00