<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>flot / Drkcore</title><link>http://blog.kzfmix.com/flot</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Wed, 11 Aug 2010 20:06:30 +0919</lastBuildDate><item><title>Flaskでflotを使う</title><link>http://blog.kzfmix.com/entry/1281524729</link><description>&lt;p&gt;&lt;a href="http://code.google.com/p/flot/"&gt;flot&lt;/a&gt;というjQuery製のグラフ描画ライブラリがあるのだけど、Flaskにはjsonifyがあるので連携割と楽だろうと書いてみたら超楽だった。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from flask import Flask, request, redirect, url_for, jsonify, render_template
from database import db_session
from models import Bp
from datetime import datetime
from calendar import timegm

Debug      = True
SECRET_KEY = 'development key'

app = Flask(__name__)
app.config.from_object(__name__)

@app.after_request
def after_request(response):
    db_session.remove()
    return response

@app.route('/')
def show_graphs():
    return render_template('flot.html')


@app.route('/json')
def json_bps():
    bps = db_session.query(Bp).all()
    bpp = [[timegm(bp.date.timetuple())*1000, bp.sbp] for bp in bps]
    return jsonify(bp=bpp)

if __name__ == '__main__':
    app.run()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;結局どういうJSONをどのURIにマップするかを考えるのかが重要なのかな。htmlは&lt;a href="http://people.iola.dk/olau/flot/examples/visitors.html"&gt;visitors per day with zooming and weekends&lt;/a&gt;をちょっとモディファイした。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/flask_flot1.png" alt="flot flask1" /&gt;&lt;/p&gt;

&lt;p&gt;したのほうの小さいグラフで選択するとその領域がすぐに反映される。インタラクティブなグラフがすぐ作れる&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/flask_flot2.png" alt="flot flask2" /&gt;&lt;/p&gt;
</description><pubDate>Wed, 11 Aug 2010 20:06:30 +0919</pubDate><category>Flask</category><category>flot</category></item></channel></rss>