django中url路径传参404问题

"本文探讨了在Django中遇到的404错误,焦点在于URL路径传参的re_path使用技巧。通过实例解析,解决不同Django版本间路径匹配问题,重点介绍了如何正确使用re_path('index1/(d+)/', views.index1)来处理带参数的URL映射。"

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

url中路径传参,一直报匹配不上错误信息

错误信息如下所示:

"GET /index1/9/ HTTP/1.1" 404 2647

Using the URLconf defined in Myblog.urls, Django tried these URL patterns, in this order:

  1. admin/
  2. login/
  3. index1/(\d+)/$

The current path, index1/9, didn’t match any of these.

url地址和views视图函数地址也没有问题,一直找不到问题所在,后来才知道,Django版本不一样,所以path不一样,对于需要传参的,需要使用re_path方法

re_path(r'index1/(\d+)/', views.index1),

### Django HTML 路由传递参数教程 在 Django 中,可以通过多种方式在 HTML 文件中向视图函数传递参数。以下是几种常见的方式: #### 使用有名分组传递简单参数 可以利用 `<a>` 标签配合 `{% url %}` 模板标签来构建带有参数的链接。假设有一个名为 `user` 的路由规则,该规则接受一个整数类型的 ID 参数。 ```html <a href="{% url 'user' id=user.id %}">查看用户详情</a> ``` 此代码片段会生成形如 `/users/<id>/` 的 URL 地址[^1]。 对于更复杂的场景,比如需要传递多个参数或字符串类型的数据,则可以在定义路由时指定相应的转换器并调整模板内的调用形式。 #### 利用表单提交数据至服务器端处理 除了超链接外,还可以借助于 HTML 表单实现更加灵活多样的交互逻辑。当用户填写完毕后点击按钮触发 POST 请求发送给目标地址,在那里等待接收的就是对应的视图处理器。 ```html <form action="{% url 'process_form' %}" method="post"> {% csrf_token %} <!-- 输入框 --> <input type="text" name="username"/> <button type="submit">提交</button> </form> ``` 这里需要注意的是为了安全起见每次发起 POST 类型请求之前都应当加入 CSRF Token 字段验证身份合法性[^3]。 #### 正则表达式匹配复杂模式下的路径变量 如果遇到一些特殊需求无法单纯依靠内置语法完成的话,也可以采用正则表达式的手段来自定义更为精确细致化的映射关系。例如下面的例子展示了如何捕捉年份信息作为查询条件的一部分[^4]。 ```python from django.urls import re_path urlpatterns = [ ... re_path(r'^archive/(?P<year>[0-9]{4})/$', views.year_archive), ... ] ``` 对应前端页面上就可以像这样写法访问特定年度的文章列表页了: ```html <a href="{% url 'year_archive' year=2023 %}">浏览2023年的文章</a> ``` 以上就是关于怎样在 Django 应用程序里经由 HTML 实现路由间传输额外信息的主要介绍内容[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值