23maverick23
8/27/2012 - 8:19 PM

Sample Heroku Flask app with MongoHQ

Sample Heroku Flask app with MongoHQ

import os
from urlparse import urlparse
from flask import Flask
from pymongo import MongoClient

MONGO_URL = os.environ.get('MONGOHQ_URL')

if MONGO_URL:
  # Get client
  client = MongoClient(MONGO_URL)
  # Get database
  db = client[urlparse(MONGO_URL).path[1:]]
else:
  # Not on an app with the MongoHQ add-on, do some localhost action
  client = MongoClient('localhost', 27017)
  db = client['MyDB']

app = Flask(__name__)
app.debug = True

@app.route('/')
def hello():
  myObj = db.analytics.find_one({'event':'page_views'})
  if not myObj:
    myObj = {'event':'page_views', 'count':1}
  else:
    myObj['count'] += 1
  db.analytics.save(myObj)
  return 'Hello World! ' + str(myObj['count'])

if __name__ == '__main__':
  # Bind to PORT if defined, otherwise default to 5000.
  port = int(os.environ.get('PORT', 5000))
  app.run(host='0.0.0.0', port=port)