Browse Source

Flask: Add fortunes

INADA Naoki 12 years ago
parent
commit
611b79accb
2 changed files with 41 additions and 4 deletions
  1. 29 3
      flask/app.py
  2. 12 1
      flask/benchmark_config

+ 29 - 3
flask/app.py

@@ -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 sqlalchemy import create_engine
 from random import randint
+from operator import attrgetter
 
 try:
     import MySQLdb
@@ -9,12 +11,15 @@ try:
 except ImportError:
     mysql_schema = "mysql+pymysql:"
 
+# setup
 
 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)
 dbraw_engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
 
+# models
+
 class World(db.Model):
   __tablename__ = "World"
   id = db.Column(db.Integer, primary_key=True)
@@ -29,6 +34,14 @@ class World(db.Model):
          '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")
 def hello():
   resp = {"message": "Hello, World!"}
@@ -70,5 +83,18 @@ def get_random_world_single_raw():
   connection.close()
   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__":
-    app.run()
+    app.run(debug=True)

+ 12 - 1
flask/benchmark_config

@@ -6,6 +6,7 @@
       "json_url": "/json",
       "db_url": "/dbs",
       "query_url": "/db?queries=",
+      "fortune_url": "/fortunes",
       "port": 8080,
       "sort": 31
     },
@@ -13,6 +14,7 @@
       "setup_file": "setup",
       "db_url": "/dbsraw",
       "query_url": "/dbraw?queries=",
+      "fortune_url": "/fortunesraw",
       "port": 8080,
       "sort": 84
     },
@@ -21,8 +23,17 @@
       "json_url": "/json",
       "db_url": "/dbs",
       "query_url": "/db?queries=",
+      "fortune_url": "/fortunes",
       "port": 8080,
       "sort": 107
-    }
+    },
+    "pypy-mysql-raw": {
+      "setup_file": "setup_pypy",
+      "db_url": "/dbsraw",
+      "query_url": "/dbraw?queries=",
+      "fortune_url": "/fortunesraw",
+      "port": 8080,
+      "sort": 108
+    },
   }]
 }