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

Django路由改为contact后访问出现404页面未找到问题求助

Django Contact页面404问题解决

问题情况

我是Django新手,在创建contact页面时遇到以下问题:

初始状态下,应用文件夹的urls.py代码如下:

from .views import *

urlpatterns = [
    path("contacts", contact_view),
]

views.py代码(注:原代码缺少def关键字,属于语法错误,已修正):

from django.http import HttpResponse

def contact_view(request):
    return HttpResponse('<h1>Contact Page</h1>')

访问http://127.0.0.1:8000/contacts时一切正常。但将路径改为contact后:

urlpatterns = [
    path("contact", contact_view),
]

尝试访问http://127.0.0.1:8000/contact时出现404,错误信息显示实际请求的URL是http://127.0.0.1:8000/contact/(带末尾斜杠),而URL配置中的路径是contact(无斜杠),导致匹配失败。

已尝试重启服务器和编辑器,问题未解决。

环境信息:Windows 11、VSCode、django 4.2.4

解决方法

方法1:给URL路径添加末尾斜杠

修改应用的urls.py,在路径后加上斜杠:

urlpatterns = [
    path("contact/", contact_view),
]

Django默认开启APPEND_SLASH设置(settings.py中默认APPEND_SLASH = True),当用户访问不带斜杠的/contact时,会自动重定向到带斜杠的/contact/,从而匹配到视图。

方法2:使用正则路径匹配两种情况

如果需要同时支持带斜杠和不带斜杠的访问,可以用re_path定义正则规则:

from django.urls import re_path

urlpatterns = [
    re_path(r'^contact/?$', contact_view),
]

正则表达式中的/?表示末尾的斜杠是可选的,这样/contact和/contact/都会被正确匹配。

额外检查

确保项目根目录的urls.py已正确包含应用的URL配置,示例如下:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('你的应用名称.urls')),  # 替换为实际应用名
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:26:29