Skip to content

Instantly share code, notes, and snippets.

@irneh
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irneh/32970097f59336a61b17 to your computer and use it in GitHub Desktop.
Save irneh/32970097f59336a61b17 to your computer and use it in GitHub Desktop.
Routing, database connection pooling, HTTP responses, sessions
import flask
import os
import psycopg2
import psycopg2.pool
app = flask.Flask(__name__)
app.secret_key = '@1*V*vpVqqfyhCZ)s/`5>B^V]mJ85]We'
app.debug = True
pool = psycopg2.pool.SimpleConnectionPool(
1, ## Min
1, ## Max
host=os.getenv('DB_SERVER'),
port='5432',
database=os.getenv('DB_NAME'),
user=os.getenv('DB_USER'),
password=os.getenv('DB_PASSWORD'))
@app.route("/go/<oid>")
def go(oid):
flask.session['lookups'] = flask.session.get('lookups', 0) + 1
conn = pool.getconn()
cur = conn.cursor()
try:
cur.execute('''
select name
from object
where id = %s;
''', (oid,))
oname = cur.fetchone()[0]
cur.close()
return oname + '\n' + str(flask.session['lookups']) + ' so far.' + '\n'
except:
flask.abort(404)
finally:
pool.putconn(conn)
@app.errorhandler(404)
def error404(error):
return 'Yo. Not found.'
if __name__ == "__main__":
app.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment