Tag line for django says “The web framework for perfectionists with deadlines.” and most would agree. django is rediculously fast to implement, its fully loaded with lots of utilitis, its secure and at the same time its highly scalable. some of the most popular sites like instagram, pinterest are built with django.
Let us get our hands dirty by getting started with django instead of talking about django features.
Which django version should I use ?
Here are the details about djnago release. you can choose latest version, however, I will stick with LTS version
Which Python version should I use ?
This is the most common question and following table with clarify your query
|Django version||Python versions|
|1.11||2.7, 3.4, 3.5, 3.6|
|2.0||3.4, 3.5, 3.6, 3.7|
|2.1,2.2||3.5, 3.6, 3.7|
In this tutorial we are going to use python version 3.6 (3.6.4 to be very specifuc) and django version 1.11 (since this is LTS)
Install django version 1.11
$ sudo python3.6 -m pip install django==1.11 Collecting django==1.11 Downloading https://files.pythonhosted.org/packages/47/a6/078ebcbd49b19e22fd560a2348cfc5cec9e5dcfe3c4fad8e64c9865135bb/Django-1.11-py2.py3-none-any.whl (6.9MB) 100% |████████████████████████████████| 6.9MB 339kB/s Requirement already satisfied: pytz in /usr/local/lib/python3.6/site-packages (from django==1.11) (2017.3) Installing collected packages: django Successfully installed django-1.11
You can check the version as below
$ python3.6 -m django --version 1.11
Creating django project
$ django-admin startproject mysite
Now CD into directory “mysite” and run following command
$python3.6 manage.py runserver Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. July 18, 2018 - 17:43:11 Django version 1.11, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [18/Jul/2018 17:43:31] "GET / HTTP/1.1" 200 1716 Not Found: /favicon.ico
Now you can access django website at location http://127.0.0.1:8000/
here is the output
Now that your environment – a “project” – is set up, you’re set to start doing work.
$ python3.6 manage.py startapp polls
after creating polls app, please add following code to polls/views.py
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
Now create a file urls.py and add following code
from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index, name='index'), ]
Now add following code in mysite.urls.py
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^polls/', include('polls.urls')), url(r'^admin/', admin.site.urls), ]
Here is the output