que estaba teniendo algunos problemas con la expresión regular en urls.py (soy un principiante a django, así como expresiones regulares en general)¿Cuál es el orden de evaluación de expresiones regex de urls.py en django?
Aquí está mi urls.py originales
url(r'^name/(?P<name>\w+)/$', 'course.views.name'),
url(r'^', 'course.views.index'),
Y yo estaba tratando para acceder a ella usando la siguiente:
http://127.0.0.1:8000/name/blah/
Mi vista se parece a:
def index(request):
return HttpResponse("Hello, sam. You're at the course index.")
def name(request, name):
return HttpResponse("Hello, %s. You're at the course index." % name)
El resultado que obtuve fue que, independientemente de la información que ingresaba, obtenía regularmente la función de "índice" y no la de "nombre". Pensé que el problema era con la primera expresión regular.
Pero entonces, he cambiado el uno del segundo a:
url(r'^$', 'course.views.index'),
y esto funciona de la manera que pensé que funcione!
Entiendo que "$" significa fin de línea, pero ¿no debería haber evaluado primero la primera expresión regular? ¿Cuál es el orden en el que se combinan estas expresiones?
Agregar un "$" a cada url no es gran cosa, pero me gustaría entender por qué lo estoy poniendo allí.
estoy usando Django1.4 y Python 2.7
Agregar un "$" a cada url no es gran cosa, pero me gustaría entender por qué lo estoy poniendo :) – Samudra