0% found this document useful (0 votes)
97 views

Django Reference Sheet

This document provides a summary of Django commands and templates. It outlines how to set up a Django project and app, including creating the directory structure, initializing the database, and adding apps. It also describes Django admin SQL commands, URL dispatcher configuration, template syntax, and common template filters.

Uploaded by

Andrzej Sliwa
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views

Django Reference Sheet

This document provides a summary of Django commands and templates. It outlines how to set up a Django project and app, including creating the directory structure, initializing the database, and adding apps. It also describes Django admin SQL commands, URL dispatcher configuration, template syntax, and common template filters.

Uploaded by

Andrzej Sliwa
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Django Reference Sheet

Project Setup Django Admin SQL Commands


Create A Project's Directory Structure All the following commands output sql specific to the
django-admin.py startproject projectname appname specified in the command and should be
(this command needs to be issued in the directory you w ant the project to be in) run from with the projectname directory.
django-admin.py sqlinitialdata appname
Customize the DB and other setting in the
projectname/settings/main.py file Outputs the initial-data inserts required for Django's
admin framework.
Initialize the DB
django-admin.py init django-admin.py sql appname
(this command should be issued in your projectname directory) Outputs the table creation statements

Set your DJANGO_SETTING_MODULE environment variable django-admin.py sqlall appname


Unix: Outputs both the sqlinitialdata and sql data
export DJANGO_SETTINGS_MODULE=projectname.settings.main
Windows: django-admin.py sqlindexes appname
set DJANGO_SETTINGS_MODULE=myproject.settings.main Outputs the the create index statements
(you'll probably w ant to set these permanently in your ~/.bashrc file in Unix or your my
computer properties in Window s)
django-admin.py sqlclear appname
Outputs the the drop table statements and the
More Details: http://www.djangoproject.com/documentation/tutorial1/
delete statements for deleting the “initialdata”.
App Setup
Create an App's Directory Structure django-admin.py startapp appname
django-admin.py startapp appname (this should be issued in your projectname/apps directory)
(this command should be issued in your projectname/apps directory)
More Details:
Setup App's models in the projectname/apps/appname/models/appname.py http://www.djangoproject.com/documentation/
file tutorial1/#activating-models
Template Syntax
Add the App to the INSTALLED_APPS in projectname/settings/main.py
There are two types of syntax:
{% something %} - For tags which include blocks
Install the App in the DB
and functional items like loops, if statements, and
django-admin.py install appname
includes.
(this command should be issued in your projectname directory)

{{ variable }} - For variable insertion where


More Details:
http://www.djangoproject.com/documentation/tutorial1/#creating-models “variable” is replaced with it's value.

URL Dispatcher Sample Config Files


Sample projectname/settings/urls/main.py file
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^weblog/', include('django_website.apps.blog.urls.blog')),
(r'^documentation/', include('django_website.apps.docs.urls.docs')),
(r'^comments/', include('django.contrib.comments.urls.comments')),
(r'', include('django.conf.urls.flatfiles')),
)

Sample projectname/apps/blog/urls/main.py file


from django.conf.urls.defaults import *
info_dict = {
'app_label': 'blog',
'module_name': 'entries',
}
urlpatterns = patterns('django.views.generic.date_based.',
(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$', 'archive_day', info_dict),
(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$', 'archive_month', info_dict),
(r'^(?P<year>\d{4})/$', 'archive_year', info_dict),
(r'^/?$', 'archive_index', info_dict),
)

Italicized Text – Placeholder names for your object(s) • Courier Text – Commands you type in
Template Filters
add - Adds the arg to the value random - Returns a random item from the list
addslashes - Adds slashes, for passing strings to JavaScript. removetags - Removes a space separated list of [X]HTML
Capfirst - Capitalizes the first character of the value tags from the output
center - Centers the value in a field of a given width rjust - Right-aligns the value in a field of a given width,
cut - Removes all values of arg from the given string Argument: field size
date - Formats a dateto the given format using “now” format slice - Returns a slice of the list.
default - If value is unavailable, use given default slugify - Converts to lowercase, removes non-alpha chars
dictsort - Takes a list of dicts, returns that list sorted by the and converts spaces to hyphens
property given in the argument. stringformat - Formats the variable according to the
dictsortreversed - Takes a list of dicts, returns that list sorted in argument, a string formatting specifier. This specifier uses
reverse order by the property given in the argument. Python string formating syntax, with the exception that the
divisibleby - Returns true if the value is divisible by the argument leading "%" is dropped.
escape - Escapes a string's HTML striptags - Strips all [X]HTML tags
filesizeformat - Format the value like a 'human-readable' file. time - Formats a time according to the given format (same
First - Returns the first item in a list as the now tag).
fix_ampersands - Replaces ampersands with &amp; entities timesince - Formats a date as the time since that date
floatformat - Displays a floating point number as 34.2 (with one (i.e. "4 days, 6 hours")
decimal places) - but only if there is a decimal point. title - Converts a string into titlecase
get_digit - Given a whole number, returns the requested digit of it, truncatewords - Truncates a string after a certain number
where 1 is the right-most digit, 2 is the second-right-most digit, etc. of words. Argument: Number of words to truncate after.
Returns the original value for invalid input, unordered_list - Recursively takes a self-nested list and
join - Joins a list with a string, like Python's str.join(list) returns an HTML unordered list -- WITHOUT opening and
length - Returns the length of the value - useful for lists closing <ul> tags.
length_is - Returns a boolean of whether the value's length is the upper - Converts a string into all uppercase
argument urlencode - Escapes a value for use in a URL
linebreaks - Converts newlines into <p> and <br />s urlize - Converts URLs in plain text into clickable links
linebreaksbr - Converts newlines into <br />s urlizetrunc - Converts URLs into clickable links, truncating
linenumbers - Displays text with line numbers URLs to the given character limit. Argument: Length to
ljust - Left-aligns the value in a field of a given width, Argument: truncate URLs to.
field size wordcount - Returns the number of words
lower - Converts a string into all lowercase wordwrap - Wraps words at specified line length.
make_list - Returns the value turned into a list. Argument: number of words to wrap the text at.
phone2numeric - Takes a phone number and converts it in to its yesno - Given a string mapping values for true, false and
numerical equivalent (optionally) None, returns one of those strings according to
pluralize - Returns 's' if the value is not 1. the value. Sample argument "yeah,no,maybe" returns yeah
pprint - A wrapper around pprint.pprint -- for debugging. for true, no for false, and maybe for none.
Template Tag Reference
block – Defines an area that the content can be inserted into. if – Evaluates for true or false
{% block content %}Default Content{% endblock %} {% if athlete %}{{ athlete }}{% endif %}
comment - {% comment %}{% endcomment %} (if statements can have “not” and “or”, but are not allow ed to have “and”)
cycle – Rotates through items ifchanged – Outputs it's content if different from last loop.
<tr class="{% cycle red,blue as colors %}">..</tr> {% ifchanged %}{{ name }}{% endifchanged %}
<tr class="{% cycle colors %}">...</tr> (code w ould be w ithin for loop)
debug – Outputs a bunch of debug info {% debug %} ifnotequal – Checks for equality
extends – Inherits from another template {% ifnotequal v1 v2 %}hi{% endifnotequal %}
{% extends "base" %} load – loads a custom tag set {% load comments %}
(leave off the .html for the template name) now – Outputs current date {% now "jS F Y H:i" %}
filter – Applies the specified filter(s) to the content in between (formatting matches php's date function for the most part)
{% filter lower %}Lowercase this{% endfilter %} regroup –Regroup a list of like objects by an attribute
firstOf – Outputs the first true variable, or nothing if all are false. {% regroup people by gender as grouped %}
{% firstof var1 var2 var3 %} ssi – Includes a file
for – Loop through list item {% ssi /home/html/side.html parsed %}
{% for athlete in athlete_list %} (if the option passed “parsed it w ill be treated as a template)
{{ athlete.name }} templatetag – Used to escape template tags
{% endfor %} {% templatetag openblock %}
forloop.counter = current loop iteration starting at 1 (arguments open/closeblock and open/closevariable)
forloop.counter0 = current loop iteration starting at 0 widthratio – Calculates the ratio of a given value to a
forloop.first = True if first time through loop maximum value, and then applies that ratio to a constant.
forloop.last = True if this is the list time through the loop {% widthratio this_value max_value 100 %}
forloop.parentloop = Parentloop counter (???)

Italicized Text – Placeholder names for your object(s) • Courier Text – Commands you type in
Sample Template
{% extends "base" %}
{% block title %}{{ title|title }}{% endblock %}
{% block intro %}
Default Intro Copy that can be replaced by templates extending this one
{% endblock %}
{% block content %}
{% for entry in blog_entries %}
{% ifchanged %}<h1>{{ entry.pub_date|date”F, y” }}</h1>{% endifchanged %}
<h2>{{ entry.title }}</h2> <p>
{{ entry.body|escape|urlizetrunc:"40"|linebreaks}}</p>
{% endfor %}

{% endblock %}

Additional Template Resources:


http://www.djangoproject.com/documentation/templates/
http://www.djangoproject.com/documentation/tutorial3/

General Django Resources:


Django Website - http://www.djangoproject.com/
Django User Group/Mailing List - http://groups-beta.google.com/group/django-users
Django Developers Group/Mailing List - http://groups-beta.google.com/group/django-developers
Django IRC - irc://irc.freenode.net/django
IRC Logs - http://loglibrary.com/show_page/latest/179

Most of the Content in this reference sheet was gathered from the http://www.djangoproject.com/ website.

Document Version: .1.1


The current document will always be available at: http://www.dobbes.com/

License:
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
http://creativecommons.org/licenses/by-nc-sa/2.5/

Italicized Text – Placeholder names for your object(s) • Courier Text – Commands you type in

You might also like