Reference:
Django Project / Django Book
The tage line for Django is "The web framework for perfectionists with deadlines"
Django makes it easier to build Web apps more quickly and with less code, mainly used for web development
Object-relational mapper
Define your data models entirely in Python. You get a rich, dynamic database-access API for free, but you can still write SQL if required.
If your web application is data extensive, better write your SQL instead of object-relational mapper
Automatic admin interface
It comes with Admin interface, you need to enable it in the web framework
There by saving extra effort in creating the admin interface from the scratch
Elegant URL design
Very Flexible URL design using loose coupling
URL definitions and the view functions they call are loosely coupled; that is, the decision of what the URL should be for a given function, and the implementation of the function itself, reside in two separate places. This lets you switch out one piece without affecting the other.
Map the URLs and view methods, if you want to change the URL pattern later, you can do it very easily by changing urls.py
It makes use of regular expression for mapping the URL patterns
It generates dynamic URLs as well
Template system
Use Django's powerful, extensible and designer-friendly template language to separate design, content and Python code.
Cache system
Hook into memcached or other cache frameworks for super performance — caching is as granular as you need.
Internationalization
Django has full support for multi-language applications, letting you specify translation strings and providing hooks for language-specific functionality.
django-admin.py should be on your system path if you installed Django via its setup.py utility.
on Windows, you need to update your PATH environment variable.
python setup.py install
python -c 'import sys, pprint; pprint.pprint(sys.path)' #this locate site-packages direcotry
>>> django.VERSION
(1, 4, 2, 'final', 0)
E.g., django-admin.py startproject mysite
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
Difference between Django Development Server Vs Web Development Server like Apache is as mentioned below :
Advantage:
Comes as part of Django itself
You can develop your site rapidly without having to deal with configuring your production server (e.g., Apache) until you are ready for production
Django Development server watches your code and automatically reloads it. making it easy for you to change code without restarting server
Disadvantage:
Not suitable for production environment
You have to deploy your code to Apache when moving to production
Django Development Server suitable in development environment
Apache web development server suitable in production environment
python manage.py runserver 8000
http://127.0.0.1:8000/
Using Apache Server (If you configure Apache)
http://127.0.0.1/mysite/
WSGScriptAlias /mysite "C:/django_workspace/mysite/mysite/wsgi.py"
Thanks for reading this article. I will discuss more examples in the coming sessions, stay tuned :-)
Django Project / Django Book
Django web framework / Python web development with Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.The tage line for Django is "The web framework for perfectionists with deadlines"
Django makes it easier to build Web apps more quickly and with less code, mainly used for web development
Main components of The Django framework
Object-relational mapper
Define your data models entirely in Python. You get a rich, dynamic database-access API for free, but you can still write SQL if required.
If your web application is data extensive, better write your SQL instead of object-relational mapper
Automatic admin interface
It comes with Admin interface, you need to enable it in the web framework
There by saving extra effort in creating the admin interface from the scratch
Elegant URL design
Very Flexible URL design using loose coupling
URL definitions and the view functions they call are loosely coupled; that is, the decision of what the URL should be for a given function, and the implementation of the function itself, reside in two separate places. This lets you switch out one piece without affecting the other.
Map the URLs and view methods, if you want to change the URL pattern later, you can do it very easily by changing urls.py
It makes use of regular expression for mapping the URL patterns
It generates dynamic URLs as well
Template system
Use Django's powerful, extensible and designer-friendly template language to separate design, content and Python code.
Cache system
Hook into memcached or other cache frameworks for super performance — caching is as granular as you need.
Internationalization
Django has full support for multi-language applications, letting you specify translation strings and providing hooks for language-specific functionality.
How to Install Django
Download Django (https://www.djangoproject.com/download/) and unzipdjango-admin.py should be on your system path if you installed Django via its setup.py utility.
on Windows, you need to update your PATH environment variable.
python setup.py install
python -c 'import sys, pprint; pprint.pprint(sys.path)' #this locate site-packages direcotry
How to check Django Installed
>>> import django>>> django.VERSION
(1, 4, 2, 'final', 0)
How to create a project
django-admin.py startproject <proj_name>E.g., django-admin.py startproject mysite
Django Project Structure
The startproject command creates a directory containing five files:mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
How to access Django from shell
python manage.py shellDjango Development Server
Django comes with its own development serverDifference between Django Development Server Vs Web Development Server like Apache is as mentioned below :
Advantage:
Comes as part of Django itself
You can develop your site rapidly without having to deal with configuring your production server (e.g., Apache) until you are ready for production
Django Development server watches your code and automatically reloads it. making it easy for you to change code without restarting server
Disadvantage:
Not suitable for production environment
You have to deploy your code to Apache when moving to production
Django Development Server suitable in development environment
Apache web development server suitable in production environment
How to start Django Development Server
Django develeopment server works on default port 8000python manage.py runserver 8000
How to test home page on Web Page
Using Django Development Serverhttp://127.0.0.1:8000/
Using Apache Server (If you configure Apache)
http://127.0.0.1/mysite/
How to configure Apache with Django
In Apache httpd.confWSGScriptAlias /mysite "C:/django_workspace/mysite/mysite/wsgi.py"
Thanks for reading this article. I will discuss more examples in the coming sessions, stay tuned :-)