erotavlas
erotavlas

Reputation: 4493

Page not found error - Writing your first Django app, part 1

I have installed Django 2.2.5 in my conda environment and I'm following the Django tutorial for Writing your first Django app, part 1

I followed the steps exactly but I'm getting a Page Not Found error when I try to access the polls/ url.

My root directory structure is like this

mysite/
    manage.py
    db.sqlite3
    urls.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    polls/
        migrations/
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        urls.py
        views.py

And my view is like this

D:\TEMP\djangotest\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")

My two urls files are like this

D:\TEMP\djangotest\mysite\polls\urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

D:\TEMP\djangotest\mysite\urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

And I run the app from the environment like this

(py3.6) D:\TEMP\djangotest\mysite>python manage.py runserver

But when I go to the url indicated in the tutorial it give the 404 error - page not found from the console

October 21, 2019 - 16:23:13
Django version 2.2.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Not Found: /polls
[21/Oct/2019 16:23:19] "GET /polls HTTP/1.1" 404 1954

From the browser it look like

Page not found (404)
Request Method:
GET
Request URL:
http://localhost:8000/polls
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: 
admin/ 
The current path, polls, didn't match any of these. 
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page. 

Upvotes: 1

Views: 380

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599788

Your main urls file is in the wrong directory. It looks like you've created a separate urls.py in the base "mysite" directory; instead you should have edited the existing one in the "mysite/mysite" directory. The one you've created isn't being used at all.

Upvotes: 2

Related Questions