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__":
+        app.run(debug=True)
+
+### 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()
 DB = CONNECTION[DATABASE]
 
+
 def clean_id(_id):
     if _id.startswith(OID_PREFIX):
         return ObjectId(_id[len(OID_PREFIX):])
     else:
         return _id
 
+
 def dict_to_json_converter(obj, **kwargs):
     if isinstance(obj, ObjectId):
         return OID_PREFIX + str(obj)
     else:
         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))
     else:
         result = list(DB[collection_name].find())
-    
     return json.dumps(result, default=dict_to_json_converter)
 
+
 def delete(collection_name, _id):
     DB[collection_name].remove(clean_id(_id))
 
+
 def save(collection_name, model, _id=None):
     if _id is not None:
         model['_id'] = clean_id(model['_id'])

flask_backmongo.py

 
 bp = Blueprint('api', __name__)
 
+
 @bp.route("/<collection>/", methods=['GET'])
 @bp.route("/<collection>/<_id>", methods=['GET'])
 def read(collection, _id=None):
     result = backmongo.read(collection, _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 = backmongo.save(collection, 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 ProjectModifiedEvent.java.
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.