似乎默认情况下,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),
)
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我,如何使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),
)
Run Code Online (Sandbox Code Playgroud)
告诉每个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') ]
Run Code Online (Sandbox Code Playgroud)
加薪
ValueError: Non-reversible reg-exp portion: '(?i'
Run Code Online (Sandbox Code Playgroud)
但与正则表达式干净利落地运行r'home/$(?i)'.
| 归档时间: |
|
| 查看次数: |
10488 次 |
| 最近记录: |