saber que programa minusculas minuscula metodo mayusculas mayuscula lower identificar español diga determinar convertir cadena python django

python - minusculas - programa que diga si es mayuscula o minuscula



¿Urls insensibles a mayúsculas/minúsculas para Django? (3)

Parece que, por defecto, el solucionador de urls de django realiza una búsqueda sensible a mayúsculas y minúsculas para resolver url y diferenciar entre ''/ Login'' e ''login''. Mis patrones de URL son los siguientes.

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), )

¿Alguien puede por favor guiarme, cómo hacer que las urnas django sean insensibles?


Con Django 2.0 (lanzado en diciembre de 2017), la forma recomendada de usar expresiones regulares para la coincidencia de URL ahora es re_path lugar de url :

from django.urls import path, re_path from . import views urlpatterns = [ re_path(r''^(?i)admin/(.*)'', admin.site.root), re_path(r''^(?i)something/(?P<somestring>/w+)/$'', views.something), re_path(r''^(?i)login/$'', views.login), re_path(r''^(?i)logout/$'', views.logout), ]


En Django 2.1, parece que (?i) colocado en cualquier lugar dentro de la URL regex causará que ignore el caso. Sin embargo, reverse() falla a menos que (?i) siga $ al final de la expresión regular.

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'') ]

plantea

ValueError: Non-reversible reg-exp portion: ''(?i''

pero funciona limpiamente con la expresión regular r''home/$(?i)'' .


Simplemente ponga (?i) al comienzo de cada cadena r''...'' , es decir:

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), )

para decirle a cada RE que coincida con las mayúsculas y minúsculas y, por supuesto, ¡viva feliz para siempre! -)