Django网址捕获yyyy-mm-dd日期

时间:2016-12-18 21:04:32

标签: python regex django django-urls

如何在Django中捕获包含yyyy-mm-dd的URL。所以像www.mydomain.com/2011-02-12。我试过了:

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
    .add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

但是,服务器说找不到页面。

3 个答案:

答案 0 :(得分:6)

在Django 3.0.5中,我使用以下urls.py

进行了此操作
from django.urls import path, register_converter
from datetime import datetime
from . import views

class DateConverter:
    regex = '\d{4}-\d{2}-\d{2}'

    def to_python(self, value):
        return datetime.strptime(value, '%Y-%m-%d')

    def to_url(self, value):
        return value

register_converter(DateConverter, 'yyyy')

urlpatterns = [
    path('', views.index, name='index'),
    path('date/<yyyy:date>/', views.date, name='date'),
]

答案 1 :(得分:3)

您应该在网址格式中有一个组名:

url(r'^(?P<date>\d{4}-\d{2}-\d{2})/$', views.index, name='index'),
#          ^^^^

还要注意网址中的尾部斜杠:www.mydomain.com/2011-02-12/。如果您不想在网址中使用斜杠,则可以将其从模式中删除。

然后您的视图函数将该组的名称作为其参数之一

def index(request, date):
    ...

您应该看到docs on Django url named groups

答案 2 :(得分:0)

试试这个:

matrixClient.startClient(unlimited); ???