Django Workflow


Create the administrative user to enable logins to the /admin section of the site:

(env)$  python createsuperuser

View & URL

  1. startapp <appname>
  2. add the app to the projects file section:
  3. Create a view to render: edit the <appname> apps file:
    from django.http import HttpResponse
    def index(request):
        return HttpResponse("It works!")
  4. Map the URL for the view: create the <appname>
    from django.conf.urls import patterns, url
    from <appname> import views
    urlpatterns = patterns('',
            url(r'^$', views.index, name='index'))
  5. Update the project’s  file to look for the <appname>’s url in the request
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'tango_with_django_project_17.views.home', name='home'),
        # url(r'^blog/', include('blog.urls')),
        url(r'^admin/', include(,
        url(r'^<appname>/', include('<appname>.urls')), 
  6. Now you can visit <IP>:8080/<appname> to see your view working (do restart the server first via:
    python runserver <IP>:8080 )


Create the directory structure for the app:

  1. create a templates directory in the projects root
  2. inside of the new templates directory create a directory matching the name of your app <appname>
  3. inside of the /projectdir/templates/<appname>/ directory create an index.html file

Update the project

  1. edit the projects file and add the following where <projectname> is the name of the folder that houses the entire project and contains the file:
    TEMPLATE_PATH = os.path.join(BASE_DIR, '<projectname>/templates')
  2. then to the same file add:
        # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
        # Always use forward slashes, even on Windows.
        # Don't forget to use absolute paths, not relative paths.
  3. create a template view in the /projectdir/templates/<appname>/index.html file  eg:
    <!DOCTYPE html>
         <title>Print Consumable Tracking</title>
         <h1>Tracking Printer Consumable Items</h1>
         <strong>{{ boldmessage }}</strong><br />
         <a href="/rango/about/">About</a><br />
  4. in the application’s file add:
    from django.shortcuts import render

    and update the index() to:

    def index(request):
        # Construct a dictionary to pass to the template engine as its context.
        # Note the key boldmessage is the same as {{ boldmessage }} in the template!
        context_dict = {'boldmessage': "I am bold font from the context"}
        # Return a rendered response to send to the client.
        # We make use of the shortcut function to make our lives easier.
        # Note that the first parameter is the template we wish to use.
        return render(request, '<appname>/index.html', context_dict)