Permalink
Browse files

Initial commit of tutorial.

  • Loading branch information...
0 parents commit f21c13dcfa1fe59cbcb9c07414c80a7423a1a449 @lethain committed Aug 18, 2008
No changes.
No changes.
No changes.
@@ -0,0 +1,33 @@
+<html> <head>
+<title>CouchDB in Django: {{ row.title }}</title>
+</head>
+<body>
+<h1>CouchDB in Django: {{ row.title }}</h1>
+<a href="/">Return to index</a>
+
+<table>
+ <tr>
+ <td> Title </td>
+ <td id="title">{{ row.title }}</td>
+ </tr>
+ <tr>
+ <td> Text </td>
+ <td id="text">{{ row.text }}</td>
+ </tr>
+</table>
+<hr>
+<form method="post" action=".">
+<table>
+ <tr>
+ <td> Title for new document </td>
+ <td><input type="text" name="title" value="{{ row.title }}"></td>
+ </tr>
+ <tr>
+ <td> Text </td>
+ <td><textarea name="text">{{ row.text }}</textarea></td>
+ <tr>
+ <td><input type="submit"></td>
+ </tr>
+</table>
+</form>
+</body> </html>
@@ -0,0 +1,25 @@
+<html> <head>
+<title>Comfy Django</title>
+</head>
+
+<body>
+<h1>CouchDB in Django</h1>
+
+<form method="post" action=".">
+<table>
+ <tr>
+ <td> Title for new document </td>
+ <td><input type="text" name="title"></td>
+ <td><input type="submit"></td>
+ </tr>
+</table>
+</form>
+<hr>
+<ol>
+ {% for row in rows %}
+ <li>
+ <a id="title" href="/doc/{{ row }}/">{{ row }}</a>
+ </li>
+ {% endfor %}
+</ol>
+</body> </html>
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+urlpatterns = patterns('comfy_django_example.couch_docs.views',
+ (r'^doc/(?P<id>\w+)/','detail'),
+ (r'^$','index'),
+)
@@ -0,0 +1,28 @@
+from django.http import Http404,HttpResponseRedirect
+from django.shortcuts import render_to_response
+from couchdb import Server
+from couchdb.client import ResourceNotFound
+
+SERVER = Server('http://127.0.0.1:5984')
+if (len(SERVER) == 0):
+ SERVER.create('docs')
+
+def index(request):
+ docs = SERVER['docs']
+ if request.method == "POST":
+ title = request.POST['title'].replace(' ','')
+ docs[title] = {'title':title,'text':""}
+ return HttpResponseRedirect(u"/doc/%s/" % title)
+ return render_to_response('couch_docs/index.html',{'rows':docs})
+
+def detail(request,id):
+ docs = SERVER['docs']
+ try:
+ doc = docs[id]
+ except ResourceNotFound:
+ raise Http404
+ if request.method =="POST":
+ doc['title'] = request.POST['title'].replace(' ','')
+ doc['text'] = request.POST['text']
+ docs[id] = doc
+ return render_to_response('couch_docs/detail.html',{'row':doc})
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+from django.core.management import execute_manager
+try:
+ import settings # Assumed to be in the same directory.
+except ImportError:
+ import sys
+ sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+ sys.exit(1)
+
+if __name__ == "__main__":
+ execute_manager(settings)
@@ -0,0 +1,75 @@
+# Django settings for comfy_django_example project.
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+ # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = '' # Or path to database file if using sqlite3.
+DATABASE_USER = '' # Not used with sqlite3.
+DATABASE_PASSWORD = '' # Not used with sqlite3.
+DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = '1cb4(@!1qo%j_a=mla0i6*hh^l632tqd%^+eun3i6j2ha-m43&'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+ 'django.template.loaders.filesystem.load_template_source',
+ 'django.template.loaders.app_directories.load_template_source',
+# 'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.doc.XViewMiddleware',
+)
+
+ROOT_URLCONF = 'comfy_django_example.urls'
+
+TEMPLATE_DIRS = (
+ # 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.
+)
+
+INSTALLED_APPS = (
+ 'comfy_django_example.couch_docs',
+)
@@ -0,0 +1,9 @@
+from django.conf.urls.defaults import *
+
+# Uncomment the next two lines to enable the admin:
+# from django.contrib import admin
+# admin.autodiscover()
+
+urlpatterns = patterns('comfy_django_example',
+ (r'^', include('couch_docs.urls')),
+)

0 comments on commit f21c13d

Please sign in to comment.