python/flaskで超簡単にjsonpのホスティングする(雛形)
クライアントサイドでjsonpで非同期なUIを作るとき、結局自分でjsonpをホスティングしないといけない。
だけどあんまりサンプルなかったので、手間を掛けないように雛形だけメモ
flaskを使う
Welcome | Flask (A Python Microframework)
easy_install flask
最近までjuno使ってたけどあっちは更新されなくなったしバグばっかなので止めた
#!/usr/bin/env python # -*- encoding:utf8 -*- from flask import Flask, Response, json application = Flask(__name__) def jsonp(data, callback="function"): return Response( "%s(%s);" %(callback, json.dumps(data)), mimetype="text/javascript" ) @application.route("/api") def api(): data = {"content":"hogehoge"} # 辞書型のデータ作る callback = request.args.get("callback") if callback: return jsonp(data, callback) return jsonp(data) @application.route("/") def index(): return "aplication working!" if __name__ == "__main__": application.run()
はてなはjavascript書けないので載せられないけど、2chのトピック一覧のjsonを返す http://182.48.60.39/scr/2ch/2chapi.py/getbbslist?callback=drtygubhnijkmui
wsgiとして走らせるのが早いけど(flaskのインスタンス名をapplicationとしているのはそのため)、セキュリティ気にしないdebug環境なら application.run(host="0.0.0.0") でやってもいい
wsgiいれるのはそんなに苦ではない。パッケージマネージャから入れてApache側で有効化する。
参考:Ubuntuにmod-wsgiいれたメモ - mizchi log