Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
June 15, 2021 04:18 pm GMT

Django Routing - A practical introduction

Hello Coders,

This article is a soft and practical introduction to Django Routing System. The sample we will code during this tutorial, in the end, will implement three routes: a default route that shows a classic Hello World, a 2nd route that displays a random number at each page refresh, and the last route will show a random image pulled from the internet.

Thanks for reading! - Content provided by App Generator.

What is Django

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. Its free and open source.

  • Django - official website
  • Django Docs - recommended starting point for every aspire Django developer

Let's Code Django

Check Python Version - recommended version is Python3

$ python --versionPython 3.8.4        <-- All good, we have a 3.x version

Create/activate a virtual environment - Unix-based system

$ virtualenv env$ source env/bin/activate  

For Windows, the syntax is slightly different

$ virtualenv env$ .\env\Scripts\activate

Install Django

$ pip install django

Create a new Django Project

$ mkdir my-django-sample$ cd my-django-sample

Inside the new directory, we will invoke startproject subcommand:

$ django-admin startproject config .

Note: Take into account that . at the end of the command.

Setup the database

$ python manage.py makemigrations$ python manage.py migrate

Start the app

$ python manage.py runserver $$ # Access the web app in browser: http://127.0.0.1:8000/

At this point we should see the default Django page in the browser:

Django - Default Project Page.

Create a new Django application

$ python manage.py startapp sample

Add a simple Django Route

Let's edit sample/views.py as shown below:

def hello(request):     return HttpResponse("Hello Django") 

Configure Django to use the new route - update config/urls.py as below:

from django.contrib import adminfrom django.urls  import pathfrom django.conf.urls import include, url   # <-- NEWfrom sample.views import hello              # <-- NEWurlpatterns = [    path('admin/', admin.site.urls),    url('', hello),                         # <-- NEW]

In other words, the default route is served by hello method defined in sample/views.py. On access the root page, we should see a simple Hello Word message:

Django Routing - Simple Message returned to the user.

New Route - Dynamic content

Let's create a new route that shows a random number - sample/views.py.

...from random import random...def myrandom(request):     return HttpResponse("Random - " + str( random() ) ) 

The new method invoke random() from Python core library, converts the result to a string and returns the result. The browser output should be similar to this:

Django Routing - Random number returned to the user.

New Route - Random Images

This route will pull a random image from a public (and free) service and inject the returned content into the browser response. To achieve this goal, we need a new Python library called requests to pull the random image with ease.

$ pip install requests

The code for the new route should be defined in sample/views.py.

...import requests...def randomimage(request):    r = requests.get('http://thecatapi.com/api/images/get?format=src&type=png')    return HttpResponse( r.content, content_type="image/png")

To see the effects in the browser, the routing configuration should be updated accordingly.

# Contents of config/urls.py...from sample.views import hello, myrandom, randomimage # <-- Updated ...urlpatterns = [    path('admin/'     , admin.site.urls),    url('randomimage' , randomimage),                 # <-- New    url('random'      , myrandom),    url(''            , hello), ]

Here is a sample output - randomly selected from a public service:

Django Routing - Random number returned to the user.

Thanks for reading! Feel free to AMA in the comments section.

More Django Resources


Original Link: https://dev.to/sm0ke/django-routing-a-practical-introduction-2m6e

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To