In Django, You can write "Hello World!" in different ways. Let's explore the two common ways to achieve this simple program [1][2][4]:
1. Function-Based View:
Let's create a function-based view in Django, to display "Hello, World!" on the webpage.
Program code:
```python
# views.py
from django.http import HttpResponse
#import the files
# create the function hello_world
def hello_world(request):
return HttpResponse("Hello, World!")
# urls.py
from django.urls import path
from . import views
#set the urlpatterns
urlpatterns = [
path('hello/', views.hello_world, name='hello_world'),
]
```
2. Class-Based view:
Program code:
```python
# views.py
from django.http import HttpResponse
from django.views import View
# create the class HelloworldView
class HelloWorldView(View):
# define the function get inside the class
def get(self, request):
return HttpResponse("Hello, World!")
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.HelloWorldView.as_view(), name='hello_world'),
]
```
Explaination of code:
1. The code initiates by importing the essential libraries: `HttpResponse` from `django.http` and View from `django.views`.
2. A class named `HelloWorldView` is defined. This class is a subclass of the `View` class. The overridden get method within this class ensures that an HTTP response is generated, delivering the message "Hello, World!".
3. Within the `urls.py` file, a URL pattern is configured. This pattern establishes a mapping between the URL /hello/ and the `HelloWorldView` class-based view.
4. When a user accesses the URL /hello/, Django's routing mechanism triggers the invocation of the get method within the `HelloWorldView` class. Consequently, an HTTP response containing the "Hello, World!" message is displayed as the output to the user.