我正在try 将任何以patternA结尾的url映射到我在Django中的索引函数.为此,我的主urls.py中包含以下内容:

urlpatterns = [
    re_path(r'patternA/$', views.index),
    

    
]

当我把http://localhost:8000/patternA/,放在PatternA之前时,一切都很好,但当我把任何东西放在PatternA之前时,事情就变得奇怪了尽管我的第二个路径与正则表达式patternA/$匹配,但当将其放入浏览器搜索栏时,我得到了404错误. 当我将模式更改为.*patternA/$时,一切都运行正常. 为什么我得到的是404和patternA/$的图案?

我把http://localhost:8000/something/patternA/放在浏览器搜索栏里,本来打算执行索引函数,结果却得到了404.

推荐答案

模式patternA/$只匹配完全以patternA/结尾的URL.要匹配任何以patternA/结尾的URL,您需要使用模式.*patternA/$

Django相关问答推荐

Django 中主键的隐式 UUID 自动字段

Django 隐藏特定人员的媒体文件链接

在 Django 4.1 中提交表单之前显示数据

Django AWS S3对象存储boto3媒体上传报错

Django:创建一个动态侧边栏模板并在其他模板中使用它

如何在 django 中修改现有模型实例?

使用 Vagrant 进行端口转发时连接重置

Django:使用 Django ORM 实现 JOIN?

Django 密码以什么格式存储在数据库中?

Django rest-auth allauth 注册,带有邮箱、名字和姓氏,没有用户名

使用 Python / Django 的 Google API 示例的 Oauth

Django:在管理界面中显示图像

这是验证 Django 模型字段的方法吗?

Python Django 模板和测试变量是否为空或空字符串

get_or_create() 线程安全吗

django 模板列表变量中的最后一个元素

django 如何知道已经运行了哪些迁移?

过滤查询参数

想要在 Django 测试中禁用信号

使用 .order_by() 和 .latest() 的 Django 查询