django中url路径传参404问题

本文描述了在Django项目中遇到的URL路径参数问题,通过re_path解决,并强调了版本差异的影响。

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

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

 问题:访问  http://127.0.0.1:8000/books/2001/ 报错

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

替换后的代码:

from django.urls import path, re_path
re_path(r'books/(\d{4})/', views.books),

以前的代码:

path('books/(\d{4})/', views.books),

 

 

 替换后重新运行,访问正常

 

### 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、付费专栏及课程。

余额充值