personalizar - ¿No se encuentra la página 404 en el sitio de Django?
personalizar 404 django (11)
2017-10-05_12: 03 ~ / mysite / mysite
$ vi urls.py 2017-10-05_12: 04 ~ / mysite / mysite
$ cd ../ .. 2017-10-05_12: 04 ~
$ mv mysite SENSIBLE_NAME_DJANGO_ROOT
Sigo el tutorial en el sitio de Django para crear una aplicación de encuesta simple. Sin embargo, Django no puede resolver "//127.0.0.1:8000/polls", aunque he definido la expresión regular en mySite / urls.py. Estoy haciendo esto en un virtualenv, con el último Django (1.7) instalado.
mySite / urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('''',
url(r''^admin/'', include(admin.site.urls)),
url(r''^polls/'', include(''polls.urls'')),
)
mySite / polls / urls.py:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('''',
url(r''^$'', views.index, name=''index''),
)
mySite / polls / views.py:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You''re at the polls index.")
mySite / settings.py:
...
INSTALLED_APPS = (
''django.contrib.admin'',
''django.contrib.auth'',
''django.contrib.contenttypes'',
''django.contrib.sessions'',
''django.contrib.messages'',
''django.contrib.staticfiles'',
''polls'',
)
....
ROOT_URLCONF = ''mySite.urls''
El error que estoy recibiendo:
Using the URLconf defined in mySite.urls, Django tried these URL patterns, in this order: ^admin/
The current URL, polls, didn''t match any of these.
Agregue la siguiente línea en su Mysite/urls.py
url(r''^$'', views.index, name=''index''),
y comprobar Si ha creado su proyecto correctamente, debería funcionar. Si no, algo como lo anterior podría haber tenido más de un archivo tan confundido.
Dependiendo de dónde coloque su URL ROOT.py, configure su ROOT_URLCONFIG en consecuencia, si lo tiene en la carpeta más externa que contiene manage.py, entonces "urls" está bien. si lo tiene en otra carpeta, entonces tiene que hacer ".urls"
Crédito por la respuesta a
Para obtener más información acerca de cómo funciona, verifique cómo Django procesa una solicitud
Django no puede resolver 127.0.0.1:8000/polls
porque url config definido como r''^polls/''
.
Solución habitual:
mySite / urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('''',
url(r''^admin/'', include(admin.site.urls)),
url(r''^polls/'', include(''polls.urls'')),
)
Nota: Cada vez que Django se encuentra con (), corta cualquier parte de la URL que haya coincidido hasta ese punto y envía la cadena restante al URLconf
incluido para su posterior procesamiento.
mySite / polls / urls.py:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns(''polls.views'',
url(r''^$'', ''index'', name=''index''),
)
Nota: en lugar de escribir eso para cada entrada en urlpatterns, puede usar el primer argumento de la función patterns () para especificar un prefijo para aplicar a cada función de vista.
Responder si
Si desea acceder a 127.0.0.1:8000/polls
Nota: sin barra diagonal al final
usar la vista basada en url
url(r''^polls'', ''polls.views.index'', name=''index''),
Así que ahora puedes acceder a 127.0.0.1:8000/polls
sin barra diagonal.
En mi caso, fue un error estúpido . Quería integrar el plugin django-tinymce, y probarlo. Así que siguiendo this guía, hice el paso 3 y exporté la variable a la ruta. Cuando el servidor se ejecutó de nuevo, recibí el error no encontrado, mostrando el mensaje:
Usando el URLconf definido en testtinymce.urls, Django probó estos patrones de URL, en este orden: ....
Pero no sabía exactamente qué era, hasta que recordé haber exportado la variable DJANGO_SETTINGS_MODULE
ejecutar un unset DJANGO_SETTINGS_MODULE
en el terminal resolvió mi problema. Espero que ayude a alguien también.
En realidad, el problema es que no notó que mysite / urls.py y polls / urls.py son dos archivos diferentes y modificó polls / urls.py en lugar de poner mysite / urls.py en el archivo urls.py. ..mysite / carpeta de mi sitio.
Está accediendo a http://yourdomain.com/ y no tiene ninguna URL definida para "/".
Tienes dos opciones:
Si desea acceder a la página de índice de su aplicación de encuestas, debe ingresar la URL: sudominio.com/polls
También puede modificar su archivo mySite / urls.py para acceder solo desde sudominio.com
from django.conf.urls import patterns, include, url from django.contrib import admin urlpatterns = patterns('''', url(r''^admin/'', include(admin.site.urls)), url(r''^$'', include(''polls.urls'')), )
Para dejar clara la respuesta para los principiantes que tienen este problema siguiendo el tutorial, la raíz del proyecto URLconf es la que está en la misma carpeta que settings.py, que es:
mysite/mysite/urls.py
Solo asegúrate de importar ''incluir''. El código se ve como:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r''^admin/'', admin.site.urls),
url(r''^polls/'', include(''polls.urls'')),
]
Así que en mysite / mysite / settings.py:
La línea debe ser:
ROOT_URLCONF = ''mysite.urls''
No es necesario crear una nueva raíz nueva URLconf.
Usted coloca la carpeta urls.py en la carpeta externa de MySite, se supone que debe colocarla en la interna, por lo que no es mySite / urls.py, sino mySite / mySite / urls.py:
Me encontré con el mismo error cuando hice el tutorial
Yo tuve el mismo problema.
Resulta que estaba confundido debido a los múltiples directorios llamados "mysite".
Creé erróneamente un archivo urls.py en el directorio raíz "mysite" (que contiene "manage.py"), luego pegué el código del sitio web.
Para corregirlo, eliminé este archivo, ingresé en el directorio mysite / mysite (que contiene "settings.py"), modifiqué el archivo "urls.py" existente y reemplacé el código con el código del tutorial.
En pocas palabras, asegúrese de que su archivo urls.py esté en el directorio correcto.
from django.conf.urls import include, url
from django.contrib import admin
from polls import views
urlpatterns = [
url(r''^admin/'', admin.site.urls),
url(r''^polls/'', include(''polls.urls'', namespace=''polls'')),
url(r''^$'', views.index, name=''index''),
]