He implementado con éxito algunas páginas que están en urls.py y se puede acceder a ellas sin problemas.
También hay una página predeterminada que debe tener enlaces a 127.0.0.1/page1 y 127.0.0.1/page2 .
¿Cómo podría lograrse eso? el nombre del sitio está en settings.py
He intentado lo siguiente en index.html:
<h3>This is the URL for "page1": <a href="{% url 'sitename:page1.html' %}"> Click here</a></h3> > django.urls.exceptions.NoReverseMatch: 'sitename' is not a registered namespace <h3>This is the URL for "page1": <a href="{% url 'page1.html' %}"> Click here</a></h3> > Reverse for 'exp.html' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Le aconsejo que primero lea este enlace para comprender django url structure
https://docs.djangoproject.com/en/1.10/topics/http/urls/#url-namespaces
La solución será así:
<h3>This is the URL for "page1": <a href="/page1"> Click here</a></h3> <h3>This is the URL for "page2": <a href="/page2"> Click here</a></h3>
y debes definir estas urls en urls.py
Parece que está intentando pasar el nombre de la plantilla a la etiqueta de plantilla de URL. Lo que deberías hacer en realidad es definir el nombre de la URL en tu urls.py, por lo que sería similar a esto:
url(r'^page1/$', YourView.as_view(), name="page1")
y luego en la plantilla:
<a href="{% url "page1" %}">Page 1</a>
Debería evitar codificar las URL haciendo algo como esto:
<a href="/page1">Page 1</a>
porque cuando en el futuro desee cambiar la URL, tendrá que hacerlo en dos lugares: en urls.py y en la(s) plantilla(s), mientras que cuando use la plantilla {% url %}, urls.py será el único lugar para hacerlo.