似乎默认情况下,django的url solver执行区分大小写搜索以解决url并区分'/ Login'和'login'.我的网址模式如下.
urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
    (r'^static/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
    (r'^login/$', 'django.contrib.auth.views.login'),
    (r'^logout/$', do_logout),
)
任何人都可以指导我,如何使django网址不敏感?
Ale*_*lli 88
只需放在(?i)每个r'...'字符串的开头,即:
urlpatterns = patterns('',
(r'^(?i)admin/(.*)', admin.site.root),
(r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}),
(r'^(?i)login/$', 'django.contrib.auth.views.login'),
(r'^(?i)logout/$', do_logout),
)
告诉每个RE不区分大小写 - 当然,从此过上幸福的生活! - )
小智 12
在Django 2.1中,似乎(?i)放在URL正则表达式中的任何位置都会导致它忽略大小写.但是,reverse()除非在正则表达式结束时(?i)跟随,否则失败$.
from django.urls import re_path, reverse
from django.shortcuts import render
def home_page(request):
    foo = reverse('home_page')
    return render(request, 'home.html')
urlpatterns = [ re_path(r'home/(?i)', home_page, name='home_page') ]
加薪
ValueError: Non-reversible reg-exp portion: '(?i'
但与正则表达式干净利落地运行r'home/$(?i)'.
| 归档时间: | 
 | 
| 查看次数: | 10488 次 | 
| 最近记录: |