The Chronicles of Django

Django is a Web-Framework. It is mostly used for designing the back-end for any website but is also useful for making good websites. Some of the websites are Disqus, Instagram, Pinterest,...

For those who don’t know what frameworks are I can explain you it as a template. Web-Frameworks are like templates where the bare bone of a website is given you need to append functionalities required and some basic modifications in the framework code. An example of this kind of frameworks is Bootstrap

Frameworks are a collection of components you can use to build a website. You don’t have to write all code from scratch. You can just take already existing code and reuse it. For more details about frameworks I recommend the post by Satyajit Sahoo in the References .

##Django:

Apart from those like Bootstrap, Skeleton, etc. there are some different kind of Web-Frameworks which are programmable and not static as just for design purposes. As you may see in most of these frameworks you can have a great design but static. So for dynamic behavior we can either use it on our computer or rather on the server itself.

Django is one of the programmable framework. Now it can be used by installing a package using python-pip and django is ready to use.

To start using it just create a new project by running a python script with a argument startproject as django-admin.py startproject.

The file structure is quite complex so to explain it I have this tree..


|-- db.sqlite3
|-- manage.py 			Managing most of the project
|-- mysite #Project Folder
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py		Project Settings containing
|   |-- settings.pyc 		diff. dirs and apps
|   |-- urls.py
|   |-- urls.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- polls			app folder for an app named polls
    |-- admin.py
    |-- admin.pyc
    |-- __init__.py
    |-- __init__.pyc
    |-- models.py		models file defining most of the
    |-- models.pyc 		functions used for db
    |-- templates #templates for HTML
    |   |-- index.html
    |   `-- polls
    |       |-- detail.html
    |       `-- index.html
    |-- tests.py
    |-- urls.py 		urls and its redirection and things to
    |-- urls.pyc		do when this type of regex is found
    |-- views.py 		view functions been called by url.py
    `-- views.pyc

Most of the things are shown above and that is the basic structure of a “django project”. Now the thing to be noted here is its based on Python and updates may migrate it to Python ver.3 also. The other thing is Security. While going through the documentation I saw many procedures for authentication and other database related algorithms and methods.

Django has a great first impressions like it has been designed in form of layers. Model Layer, View Layer and Template Layer.

End of Post

References: “Why I like frameworks, and why I don’t” by Satyajit Sahoo Django Documentation