You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2010/10/21 14:07:11 UTC

[Couchdb Wiki] Update of "Getting_started_with_PL/SQL" by ZekeriyaKoc

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Getting_started_with_PL/SQL" page has been changed by ZekeriyaKoc.
http://wiki.apache.org/couchdb/Getting_started_with_PL/SQL?action=diff&rev1=18&rev2=19

--------------------------------------------------

- ## page was copied from Getting_started_with_Python
- Getting started with Python and the CouchDB API.
+ Getting started with Oracle PL/SQL and the CouchDB API.
  
  == Library ==
- === couchdbkit ===
-  . http://couchdbkit.org/
+ === couch_orcl ===
+  . [[http://couchdbkit.org/|http://http://projects.zekzekus.com/projects/couch-orcl]]
  
- Start using Couchdbkit by reading the [[http://couchdbkit.org/docs/gettingstarted.html|Getting Started tutorial]].
- 
- For django use the [[http://www.couchdbkit.org/docs/django-extension.html|django extension]] of couchdbkit. Other extension exists for [[http://docs.formalchemy.org/ext/couchdb.html|formalchemy]].
- 
- === couchdb-python ===
- The code for the Python library can be obtained from:
- 
-  . http://code.google.com/p/couchdb-python
- 
- From a terminal window:
- 
- {{{
- $ wget http://peak.telecommunity.com/dist/ez_setup.py
- $ sudo python ez_setup.py
- $ wget http://pypi.python.org/packages/2.6/C/CouchDB/CouchDB-0.8-py2.6.egg
- $ sudo easy_install CouchDB-0.8-py2.6.egg
- }}}
- This first downloads and installs the ''ez_setup.py'' script which runs python ''.egg'' files. The second part downloads the ''.egg'' file for CouchDB and installs it along with its dependencies.
- 
- You can find the documentation [[http://packages.python.org/CouchDB/getting-started.html|here]], although make sure you use the latest version.
- 
- === couchquery ===
-  . http://mikeal.github.com/couchquery/
- 
- An implementation of the python 'shelve' API using couchquery as a backend
- 
-  . http://www.randomwalking.com/snippets/couchshelve.text
- 
- == Tutorial on using couchdb-python with Django ==
- A tutorial on using Django (a Python framework) with CouchDb can be found at
- 
-  . http://lethain.com/entry/2008/aug/18/an-introduction-to-using-couchdb-with-django/ http://www.eflorenzano.com/blog/post/using-couchdb-django/
- 
- Alternatively you can view just the source for that example at
- 
-  . http://github.com/lethain/comfy-django-example/tree/master
- 
- == Example Wrapper Class ==
- Demonstration of basic API-interaction using Python. (note: as of python 2.6, one can use "import json" for the same functionality in this script.)
- 
- {{{#!python
- #! /usr/bin/python2.4
- 
- import httplib, simplejson  # http://cheeseshop.python.org/pypi/simplejson
-                             # Here only used for prettyprinting
- 
- def prettyPrint(s):
-     """Prettyprints the json response of an HTTPResponse object"""
- 
-     # HTTPResponse instance -> Python object -> str
-     print simplejson.dumps(simplejson.loads(s.read()), sort_keys=True, indent=4)
- 
- class Couch:
-     """Basic wrapper class for operations on a couchDB"""
- 
-     def __init__(self, host, port=5984, options=None):
-         self.host = host
-         self.port = port
- 
-     def connect(self):
-         return httplib.HTTPConnection(self.host, self.port) # No close()
- 
-     # Database operations
- 
-     def createDb(self, dbName):
-         """Creates a new database on the server"""
- 
-         r = self.put(''.join(['/',dbName,'/']), "")
-         prettyPrint(r)
- 
-     def deleteDb(self, dbName):
-         """Deletes the database on the server"""
- 
-         r = self.delete(''.join(['/',dbName,'/']))
-         prettyPrint(r)
- 
-     def listDb(self):
-         """List the databases on the server"""
- 
-         prettyPrint(self.get('/_all_dbs'))
- 
-     def infoDb(self, dbName):
-         """Returns info about the couchDB"""
-         r = self.get(''.join(['/', dbName, '/']))
-         prettyPrint(r)
- 
-     # Document operations
- 
-     def listDoc(self, dbName):
-         """List all documents in a given database"""
- 
-         r = self.get(''.join(['/', dbName, '/', '_all_docs']))
-         prettyPrint(r)
- 
-     def openDoc(self, dbName, docId):
-         """Open a document in a given database"""
-         r = self.get(''.join(['/', dbName, '/', docId,]))
-         prettyPrint(r)
- 
-     def saveDoc(self, dbName, body, docId=None):
-         """Save/create a document to/in a given database"""
-         if docId:
-             r = self.put(''.join(['/', dbName, '/', docId]), body)
-         else:
-             r = self.post(''.join(['/', dbName, '/']), body)
-         prettyPrint(r)
- 
-     def deleteDoc(self, dbName, docId):
-         # XXX Crashed if resource is non-existent; not so for DELETE on db. Bug?
-         # XXX Does not work any more, on has to specify an revid
-         #     Either do html head to get the recten revid or provide it as parameter
-         r = self.delete(''.join(['/', dbName, '/', docId]))
-         prettyPrint(r)
- 
-     # Basic http methods
- 
-     def get(self, uri):
-         c = self.connect()
-         headers = {"Accept": "application/json"}
-         c.request("GET", uri, None, headers)
-         return c.getresponse()
- 
-     def post(self, uri, body):
-         c = self.connect()
-         headers = {"Content-type": "application/json"}
-         c.request('POST', uri, body, headers)
-         return c.getresponse()
- 
-     def put(self, uri, body):
-         c = self.connect()
-         if len(body) > 0:
-             headers = {"Content-type": "application/json"}
-             c.request("PUT", uri, body, headers)
-         else:
-             c.request("PUT", uri, body)
-         return c.getresponse()
- 
-     def delete(self, uri):
-         c = self.connect()
-         c.request("DELETE", uri)
-         return c.getresponse()
- }}}
- == Usage Example ==
- {{{#!python
- def test():
-     foo = Couch('localhost', '5984')
- 
-     print "\nCreate database 'mydb':"
-     foo.createDb('mydb')
- 
-     print "\nList databases on server:"
-     foo.listDb()
- 
-     print "\nCreate a document 'mydoc' in database 'mydb':"
-     doc = """
-     {
-         "value":
-         {
-             "Subject":"I like Planktion",
-             "Author":"Rusty",
-             "PostedDate":"2006-08-15T17:30:12-04:00",
-             "Tags":["plankton", "baseball", "decisions"],
-             "Body":"I decided today that I don't like baseball. I like plankton."
-         }
-     }
-     """
-     foo.saveDoc('mydb', doc, 'mydoc')
- 
-     print "\nCreate a document, using an assigned docId:"
-     foo.saveDoc('mydb', doc)
- 
-     print "\nList all documents in database 'mydb'"
-     foo.listDoc('mydb')
- 
-     print "\nRetrieve document 'mydoc' in database 'mydb':"
-     foo.openDoc('mydb', 'mydoc')
- 
-     print "\nDelete document 'mydoc' in database 'mydb':"
-     foo.deleteDoc('mydb', 'mydoc')
- 
-     print "\nList all documents in database 'mydb'"
-     foo.listDoc('mydb')
- 
-     print "\nList info about database 'mydb':"
-     foo.infoDb('mydb')
- 
-     print "\nDelete database 'mydb':"
-     foo.deleteDb('mydb')
- 
-     print "\nList databases on server:"
-     foo.listDb()
- 
- if __name__ == "__main__":
-     test()
- }}}
- == Sample Output ==
- {{{#!java
- Create database 'mydb':
- {
-     "ok": true
- }
- 
- List databases on server:
- [
-     "mydb"
- ]
- 
- Create a document 'mydoc' in database 'mydb':
- {
-     "_id": "mydoc",
-     "_rev": 362213977,
-     "ok": true
- }
- 
- Create a document, using an assigned docId:
- {
-     "_id": "CF29360495B2AAB44C7E43E5752A5123",
-     "_rev": 627930386,
-     "ok": true
- }
- 
- List all documents in database 'mydb'
- {
-     "rows": [
-         {
-             "_id": "CF29360495B2AAB44C7E43E5752A5123",
-             "_rev": 627930386
-         },
-         {
-             "_id": "mydoc",
-             "_rev": 362213977
-         }
-     ],
-     "view": "_all_docs"
- }
- 
- Retrieve document 'mydoc' in database 'mydb':
- {
-     "_id": "mydoc",
-     "_rev": 362213977,
-     "value": {
-         "Author": "Rusty",
-         "Body": "I decided today that I don't like baseball. I like plankton.",
-         "PostedDate": "2006-08-15T17:30:12-04:00",
-         "Subject": "I like Planktion",
-         "Tags": [
-             "plankton",
-             "baseball",
-             "decisions"
-         ]
-     }
- }
- 
- Delete document 'mydoc' in database 'mydb':
- {
-     "_rev": 3811288472,
-     "ok": true
- }
- 
- List all documents in database 'mydb'
- {
-     "rows": [
-         {
-             "_id": "CF29360495B2AAB44C7E43E5752A5123",
-             "_rev": 627930386
-         }
-     ],
-     "view": "_all_docs"
- }
- 
- List info about database 'mydb':
- {
-     "db_name": "mydb",
-     "doc_count": 1,
-     "update_seq": 3
- }
- 
- Delete database 'mydb':
- {
-     "ok": true
- }
- 
- List databases on server:
- []
- }}}
-