Django Templates | Set – 2

Prerequisite: Django Templates | Set-1, Views In Django.

Navigate to brand/views.py and add following code to brand/views.py

filter_none

edit
close

play_arrow

link
brightness_4
code

from django.shortcuts import render
from django.http import HttpResponse
  
# Create your views here.
def ViewDemo(request):
    return HttpResponse("<h1>Hello World. Welcome to views.py.</h1>")
  
def homepage(request):
    return render(request, 'homepage.html')

chevron_right


HttpResponse –

HttpResponse is buitlin utility function provided by django to return HttpResponse to incoming request. We can write a complete HTML code in HttpResponse function but the readability of code will be minimal and it will be more difficult to debug. It will be better to use HTML pages instead of writing complete HTML codes into HttpResponse function. This is where render function comes into play.



render –

render is builtin utility provided by Django to render HTML pages and to feed dynamic content into them. render function takes three input parameters normally.

  1. First parameter is request parameter which was received by our function.
  2. Second parameter is url of an HTML page which will be displayed on screen on invoking the current function.
  3. Third parameter which is optional but very important and which makes our HTML page dynamic is a dictionary which is sent to HTML page as key-value pair.

In our homepage function, we have used render function without third parameter. Before running the server, make sure that you have configured url in your geeks_site/settings.py by adding following lines of code.

from brand.views import ViewDemo, homepage
urlpatterns = [
    path('', homepage),
    path('admin/', admin.site.urls),
    path('hello-world/', ViewDemo),
]

If you run command python manage.py runserver now, you will get following error page:
template-doesn't-exist
This error clearly states that the HTML page we are trying to view doesn’t exist. So our next step is to add a HTML page named homepage.html in our templates directory.

templates/homepage.html –

filter_none

edit
close

play_arrow

link
brightness_4
code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Homepage</title>
</head>
<body>
    <h1>Welcome to Geeksforgeeks.</h1>
</body>
</html>

chevron_right


Refresh the page and output is displayed on your screen.
homepage



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.