javascript - Django urlpatterns 正则表达式不精确,得到 404?

标签 javascript regex django url-pattern

我正在处理 Django API URL,并尝试识别这种类型的 HTTP 请求:
DELETE http://localhost:8000/api/unassigned_events/dddd-dd-dd/d or dd/ - d 代表数字,同时将每个扇区保存在一个参数中。
例如 DELETE http://localhost:8000/api/unassigned_events/2019-06-20/1/

我的正则表达式路径表达式是:
path(r'^api/unassigned_events/(?P<date>[0-9]{4}-[0-9]{2}-[0-9]{2})/(?P<cls_id>[0-9]{1,2})/$', UnassignedClassRequests.as_view(), name='delete')

HTTP 请求是上面给出的示例,但我收到了 404 错误,而不是 View 的功能。

这里是要调用的 View 方法:

class UnassignedClassRequests(APIView):  

@staticmethod                                                                         
def delete(request):                                                                                                
UnassignedEvents.objects.filter(date=request.date, cls_id=request.cls_id).delete()
return HttpResponse(status=status.HTTP_201_CREATED)  

以及我在 Chrome 上遇到的错误:
删除http://localhost:8000/api/unassigned_events/2019-06-20/1/ 404(未找到)。

我也为路径尝试了这个正则表达式,但没有成功:

path(r'^api/unassigned_events/(?P<year>[0-9]{4})-(?P<month>[0-9]{2})-(?P<day>[0-9]{2})/(?P<cls_id>[0-9]{1,2})/$' UnassignedClassRequests.as_view(), name='delete')

我做错了什么?

最佳答案

Django 的 path(..) [Django-doc] 使用正则表达式语法。您可以使用 re_path(..) [Django-doc]为此:

from django.urls import <b>re_path</b>

urlpatterns = [
    <b>re_path</b>(r'^api/unassigned_events/(?P<date>[0-9]{4}-[0-9]{2}-[0-9]{2})/(?P<cls_id>[0-9]{1,2})/$', UnassignedClassRequests.as_view(), name='delete'),
    # ...
]

关于javascript - Django urlpatterns 正则表达式不精确,得到 404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722480/

相关文章:

PHP 动态数据库插入

javascript - 如何在 JavaScript 设置代码中添加 CSS 类?

javascript - .match() 和正则表达式的意外输出

javascript - 在事件函数中检查组件状态是否有效?

javascript - dxTab 动态字体大小

regex - 压缩 awk/sed 管道命令

regex - 用于单词匹配语言希伯来语的 Perl 5.34.0 正则表达式

Javascript 解决方案忽略点击进行第一次点击?

python - 在virtualenv中下载sqlite3

python - 类型错误 : sequence item 0: expected str instance, 找到段落