Django URL正则表达式可与GET正确匹配,但不能与POST正确匹配

狗狗

我正在开发一个Webapp,可以让您轮询给定日期的Django后端的IRC日志。我的网址结构是:

example.tld/weblogs/<example channel>/dl/<example date>.<example format>

用户可以通过GET查询以下网址方案:

example.tld/weblogs/<example channel>/

以获得IRC数据的最后100行。

views.download当请求是显式GET时,我的URL匹配文件正确地路由到正确的视图(),但是我无法example.tld/weblogs/<example channel>/dl/在Just上执行POST,并且无法将POST的表单数据发送到与显式GET相同的视图。

例如,如果用户键入显式URL,example.tld/weblogs/foo/dl/2015-01-01.json则请求将被正确路由到正确的视图。但是,如果表单将POST提交到example.tld/weblogs/foo/dl/,则POST请求将发送到处理对Just的请求的视图example.tld/weblogs/foo(在这种情况下)。

项目urls.py

from django.conf.urls import include, url
from django.contrib import admin
from log import views

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^weblog/', include('log.urls')),
]

log.urls

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.weblogs, name='weblogs'),
    url(r'^(?P<channel>[^, ]{1,200})/$', views.channel, name="channel"),
    url(r'^(?P<channel>[^, ]{1,200})/dl/(?P<date>[0-9]{4}-[0-9]{2}-[0-9]{2}).(?P<format>(html|json|yaml|xml))', views.download),
]

GET请求如下所示:

"GET /weblog/example/dl/2015-08-20.yaml/ HTTP/1.1" 200 4621

POST请求如下所示:

"POST /weblog/example/dl/ HTTP/1.1" 200 74

阿拉斯代尔

在您的正则表达式中,[^, ]匹配除逗号和空格(包括正斜杠)之外的任何字符。

要排除正斜杠,请将其更改为[^,/ ]另外,类似的东西[-\w] +可能是合适的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django url正则表达式未匹配

来自分类Dev

Django反向正则表达式匹配

来自分类Dev

Django中匹配网址的正则表达式

来自分类Dev

正则表达式匹配django块templatetag

来自分类Dev

Django正则表达式模式匹配

来自分类Dev

Django url正则表达式终止$不匹配路由

来自分类Dev

Django REST框架url正则表达式模式不匹配

来自分类Dev

Django:与 URL 中的正则表达式无反向匹配

来自分类Dev

正则表达式Django URL

来自分类Dev

正则表达式Django URL

来自分类Dev

正则表达式匹配要在 Django 项目中的 URL 模式中使用的字母和数字的组合?

来自分类Dev

Django NoReverseMatch异常,用于匹配2条路由的正则表达式

来自分类Dev

Django模板标签中的正则表达式仅匹配一次

来自分类Dev

正则表达式需要与django视图的域名匹配

来自分类Dev

如何在re_path django 3中正确编写正则表达式

来自分类Dev

正则表达式可匹配单词,但不能匹配带有某些字符的数字

来自分类Dev

正则表达式以匹配url但不匹配urlMvc

来自分类Dev

Django URL,不同的正则表达式?

来自分类Dev

Django URL中的正则表达式错误

来自分类Dev

Django URL模式顺序和正则表达式

来自分类Dev

Django:如何读取嵌套的URL正则表达式

来自分类Dev

Django URL中的正则表达式

来自分类Dev

在正则表达式Django URL中写'-'

来自分类Dev

Django中的正则表达式URL

来自分类Dev

Django正则表达式URL不起作用

来自分类Dev

Django URL正则表达式未捕获Int

来自分类Dev

在Django url正则表达式中消失`+`

来自分类Dev

如何匹配年份范围(字符串)参数,例如 2001-2002在Django URL中使用正则表达式

来自分类Dev

领域的Django正则表达式

Related 相关文章

热门标签

归档