|
@@ -1,7 +1,9 @@
|
|
-from flask import Flask, jsonify, request
|
|
|
|
|
|
+#!/usr/bin/env python
|
|
|
|
+from flask import Flask, jsonify, request, render_template
|
|
from flask.ext.sqlalchemy import SQLAlchemy
|
|
from flask.ext.sqlalchemy import SQLAlchemy
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy import create_engine
|
|
from random import randint
|
|
from random import randint
|
|
|
|
+from operator import attrgetter
|
|
|
|
|
|
try:
|
|
try:
|
|
import MySQLdb
|
|
import MySQLdb
|
|
@@ -9,12 +11,15 @@ try:
|
|
except ImportError:
|
|
except ImportError:
|
|
mysql_schema = "mysql+pymysql:"
|
|
mysql_schema = "mysql+pymysql:"
|
|
|
|
|
|
|
|
+# setup
|
|
|
|
|
|
app = Flask(__name__)
|
|
app = Flask(__name__)
|
|
-app.config['SQLALCHEMY_DATABASE_URI'] = mysql_schema + '//benchmarkdbuser:benchmarkdbpass@DBHOSTNAME:3306/hello_world'
|
|
|
|
|
|
+app.config['SQLALCHEMY_DATABASE_URI'] = mysql_schema + '//benchmarkdbuser:benchmarkdbpass@DBHOSTNAME:3306/hello_world?charset=utf8'
|
|
db = SQLAlchemy(app)
|
|
db = SQLAlchemy(app)
|
|
dbraw_engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
|
|
dbraw_engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
|
|
|
|
|
|
|
|
+# models
|
|
|
|
+
|
|
class World(db.Model):
|
|
class World(db.Model):
|
|
__tablename__ = "World"
|
|
__tablename__ = "World"
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
@@ -29,6 +34,14 @@ class World(db.Model):
|
|
'randomNumber': self.randomNumber
|
|
'randomNumber': self.randomNumber
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+class Fortune(db.Model):
|
|
|
|
+ __tablename__ = "Fortune"
|
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
|
+ message = db.Column(db.String)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# views
|
|
|
|
+
|
|
@app.route("/json")
|
|
@app.route("/json")
|
|
def hello():
|
|
def hello():
|
|
resp = {"message": "Hello, World!"}
|
|
resp = {"message": "Hello, World!"}
|
|
@@ -70,5 +83,18 @@ def get_random_world_single_raw():
|
|
connection.close()
|
|
connection.close()
|
|
return jsonify(worlds=worlds)
|
|
return jsonify(worlds=worlds)
|
|
|
|
|
|
|
|
[email protected]("/fortunes")
|
|
|
|
+def get_fortunes():
|
|
|
|
+ fortunes = list(Fortune.query.all())
|
|
|
|
+ fortunes.sort(key=attrgetter('message'))
|
|
|
|
+ return render_template('fortunes.html', fortunes=fortunes)
|
|
|
|
+
|
|
|
|
[email protected]("/fortunesraw")
|
|
|
|
+def get_forutens_raw():
|
|
|
|
+ fortunes = list(dbraw_engine.execute("SELECT * FROM Fortune"))
|
|
|
|
+ fortunes.sort(key=attrgetter('message'))
|
|
|
|
+ return render_template('fortunes.html', fortunes=fortunes)
|
|
|
|
+
|
|
|
|
+# entry point for debugging
|
|
if __name__ == "__main__":
|
|
if __name__ == "__main__":
|
|
- app.run()
|
|
|
|
|
|
+ app.run(debug=True)
|