简体   繁体   中英

How can I view my HTML page in Python using Django

I'm new into creating projects in Python using Django.

I'm creating a website in Python using the Django framework. I've created an " index " function in the " views.py " file to render the " index.html " file present in the " templates " folder. Below is the code for the " views.py " file.

from django.http import HttpResponse
from django.shortcuts import render


# Create your views here.
def index(request):
    return render(request,"index.html",{})

I've also added the navigation for the " index " page. Below is the code for " urls.py " file.

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

from gallery import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index,name="index")
]

Below is the code of templates section in settings.py file.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates'),], #path to templates folder in local system.
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

But when I try to open the " index " page URL, I'm not able to view the page.

Error screenshot for reference

在此处输入图像描述

Folder structure for reference:-

Gallery_Website
|--gallery
  |_ __init__.py
  |_ admin.py
  |_ apps.py
  |_ models.py
  |_ tests.py
  |_ views.py
|--Gallery_Website
  |_ __init__.py
  |_ settings.py
  |_ urls.py
  |_ wsgi.py
|--templates
  |_ index.html
|--db.sqlite3
|--manage.py

What could be wrong while defining the navigation for the "index" page?

Let me know if any other information is required.

You have to remove ' index/ ' in urls.py

Correct Code:

urlpatterns = [
     path('admin/', admin.site.urls),
     path('', views.index,name="index")
]
In your settings.py file, add a value to you template dictionary key -- DIRS=[]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

then create a folder "templates" where "manage.py" file resides. And in that templates folder, create a file "index.html". Then you will be a able to see your html page.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM