remosu avatar remosu committed 4a30b89

added 'how to use backmongo' to the README

Comments (0)

Files changed (3)

 * flask
 * pymongo
+## Use
+### as a Flask extension
+    from flask import Flask
+    from flask.ext import backmongo
+    app = Flask(__name__)
+    backmongo.init_app(app)
+    if __name__ == "__main__":
+### From de command line
+    $ backmongo path/to/project/dir
 ## Examples
 There's an example in examples/todos/ (a slightly modified version of [this][0]) that illustrates how easy it's to use backmongo from a backbone application.
 CONNECTION = pymongo.Connection()
 def clean_id(_id):
     if _id.startswith(OID_PREFIX):
         return ObjectId(_id[len(OID_PREFIX):])
         return _id
 def dict_to_json_converter(obj, **kwargs):
     if isinstance(obj, ObjectId):
         return OID_PREFIX + str(obj)
         return json_util.default(obj, **kwargs)
 def read(collection_name, _id=None):
     if _id is not None:
         result = DB[collection_name].find_one(clean_id(_id))
         result = list(DB[collection_name].find())
     return json.dumps(result, default=dict_to_json_converter)
 def delete(collection_name, _id):
 def save(collection_name, model, _id=None):
     if _id is not None:
         model['_id'] = clean_id(model['_id'])

 bp = Blueprint('api', __name__)
 @bp.route("/<collection>/", methods=['GET'])
 @bp.route("/<collection>/<_id>", methods=['GET'])
 def read(collection, _id=None):
     result =, _id)
     return Response(result, mimetype='application/json')
 @bp.route("/<collection>/<_id>", methods=['DELETE'])
 def delete(collection, _id):
     backmongo.delete(collection, _id)
     return Response("{status: OK}", mimetype='application/json')
 @bp.route("/<collection>/", methods=['POST'])
 @bp.route("/<collection>/<_id>", methods=['PUT'])
 def save(collection, _id=None):
     result =, request.json, _id)
     return Response(result, mimetype='application/json')
 def init_app(app, url_prefix=''):
     app.register_blueprint(bp, url_prefix=url_prefix)
 def main():
     import sys
     import os
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.