Django
Django
Model - The data you want to present, usually data from a database.
View - A request handler that returns the relevant template and content - based on
the request from the user.
Template - A text file (like an HTML file) containing the layout of the web page, with
logic on how to display the data.
Model
The model provides data from the database.
The most common way to extract data from a database is SQL. One problem with SQL is
that you have to have a pretty good understanding of the database structure to be able to
work with it.
Django, with ORM, makes it easier to communicate with the database, without having to
write complex SQL statements.
View
A view is a function or method that takes http requests as arguments, imports the relevant
model(s), and finds out what data to send to the template, and returns the final result.
Template
A template is a file where you describe how the result should be represented.
Templates are often .html files, with HTML code describing the layout of a web page, but it
can also be in other file formats to present other results, but we will concentrate on .html
files.
Django uses standard HTML to describe the layout, but uses Django tags to add logic:
<h1>My Homepage</h1>
When a user requests a URL, Django decides which view it will send it to.
1. Django receives the URL, checks the urls.py file, and calls the view that matches
the URL.
2. The view, located in views.py, checks for relevant models.
3. The models are imported from the models.py file.
4. The view then sends the data to a specified template in the template folder.
5. The template contains HTML and Django tags, and with the data it returns finished
HTML content back to the browser.
Django can do a lot more than this, but this is basically what you will learn in this tutorial,
and are the basic steps in a simple web application made with Django.
Django History
Django was invented by Lawrence Journal-World in 2003, to meet the short deadlines in the
newspaper and at the same time meeting the demands of experienced web developers.