Introduction to Django
1. High level web framework
1. Basic modules, classes, and tools to quickly develop and deploy web apps
2. Contains an ORM (Object-Relational Mapper) that allows for the use of standard Python language syntax when interfacing with a back-end database.
1. Developer need not learn SQL, DDL, etc!
3. Provides a template framework that allows HTML, XML, and other “documents” to be converted into “templates”, which can then be converted to “output” via a wide range of substitution techniques.
4. Elegant URL support (fancy, beautiful URL's, no “?blah=blah”, etc.)
2. Fast and easy to use, robust, flexible, and lots of contributed components available!
1. Built in administrative interface to manage data models.
2. Built-in authentication/access control components
Installing & Configuring Django Components
1. Django can be downloaded from http://www.djangoproject.com/download
2. Unpack and install Django
3. Unpack the sources and run the command below from the Django source directory as the root user: python setup.py install
4. This command works the same on Windows as it does in the Linux environment, you just need to make sure you call the correct interpreter.
· Current version of Django provide support for three databases:
o PostgreSQL using the psycopg and psycopg2 drivers .
§ Unix versions can be downloaded from http://initd.org/pub/software/psycopg/
§ Windows version are available at http://stickpeople.com/projects/python/win-psycopg/
o MySQL using the MySQLdb package.
§ This package is available at http://sf.net/projects/mysql-python/ .
o SQLite 3 using the pysqlite package.
§ This package is available at http://trac.edgewall.org/wiki/PySqlite .
· SQLite support is included in Python version 2.5 and newer.
· Django supports all of these databases in the same
manner, so which you choose to use here makes little
difference, since everything is coded in the same
· When you move to your own development system,
you'll need to choose a database based on your
needs and the software deployed in your enterprise.
Creating a New Project
· The django-admin.py tool is used to create a directory and create “default” files for a new Django project.
o A project is generally made up of one or more “apps”
o Functional code is contained within the apps.
· Use the django-admin.py script to create the new project files. django-admin.py startproject name
o The startproject argument tells the command that we need it to initialize a new Django project.
o The name argument allows us to specify the name of the project to be created.
o When the command runs, it will create a new directory called name in the current directory, and populate it with a few files:
o __init__.py : A file that causes Python to treat the directory as a package.
o manage.py: A command line utility to communicate with Django.
o settings.py: Configuration settings for the project.
o urls.py: URL declarations for the project. The URL's tell Django what to do when certain URL's are put into the browser.
Starting the Test Server
§ Once you've created your project, you can test it by starting up the Django development server.
o You can start the server using the command:
python manage.py runserver
o This command will start up the server and listen on port 8000 of your system.
o You can use your web browser to connect to the server using the URL the command returns
Creating a New Application
§ Once you've created a project, you'll need to create an application.
o Django models and views are handled through the application itself – not the project, which consists of primarily the controller and base settings (such as data store information)
§ You can begin a new app by opening a shell window in your project directory and issuing the 'startapp' command.
§ Like projects, you should avoid using reserved words for your app name, otherwise you might run into problems later
§ Once you've created a new app (or installed an app from a third party), you'll want to add it to the list of INSTALLED_APPS in your projects 'settings.py' file
§ Apps are not actually used until they are installed, so you'll want to make sure you install your app, or it won't be usable in your project