import time from django.template import Context, loader from django.http import HttpResponse # # normally one would read and write the text from some sort of storage # for this example we'll use a global variable to hold the content # DATA = [] for i in range(10): DATA.append( 'Entry number %d' % i ) def template(name, mimetype='text/html', **kwd): """Renders a template and wraps it as an http response""" templ = loader.get_template(name) page = templ.render( Context(kwd) ) return HttpResponse(page, mimetype=mimetype) def param(request, name, default=''): """Shortcut for getting a parameter value""" return request.REQUEST.get(name, default).strip() def index(request): """Main page""" global DATA mode = param(request, 'mode') if mode == 'proto': fname = 'proto-index.html' else: fname = 'mochi-index.html' return template(fname, text=DATA) def save_text(request): """Saves text""" global DATA oid = int( param(request, 'oid') ) text = DATA[oid] = param(request, 'text') time.sleep(0.5) # artificial delay to show off the intermediate message return HttpResponse( text, mimetype="text/plain" ) def get_text(request): """Retrieves text""" global DATA oid = int( param(request, 'oid') ) text = DATA[oid] time.sleep(0.5) # artificial delay to show off the intermediate message return HttpResponse( text, mimetype="text/plain" )