http://flask.pocoo.org/
準備
sudo apt-get install python-flask
簡単にhttpsサーバを用意できるのでうれしいですね。
でもバグがあるのかpython 2.7.3では動かず適当に修正しました。
/usr/lib/python2.7/SocketServer.py
の470行目
request.shutdown(socket.SHUT_WR)
とあるのを
if isinstance(request,socket._socketobject):
request.shutdown(socket.SHUT_WR)
else:
request.shutdown()
こうしました。
SSLセッションの時はshutdown()は引数無しでないといけないみたい。
きちんとソースを追ってないけど、今のところはこれで回避。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import flask
app = flask.Flask( __name__ )
@app.route ( '/', methods=['GET', 'POST'] )
def index():
#ヘッダの取得
#flask.request.headers['Content-Type']
#クエリの取得
#flask.request.values.get('abc',None)
if flask.request.method=='GET':
return '<html><body>hello</body></html>'
if flask.request.method=='POST':
f = request.files['the_file']
f.save('/tmp/' + f.filename)
return flask.redirect(flask.url_for('index'))
flask.abort(404)
return 'abortしてるのでここは走らない'
@app.route ( '/abc' )
def abc():
#templatesディレクトリのabc.htmlを使う
return flask.render_template('abc.html')
@app.route ( '/text' )
def text():
res = 'hello'
return flask.Response(res, mimetype='text/plain')
#HTTPサーバの場合はこちら
app.run(host='0.0.0.0',port=80,debug=True)
#HTTPSサーバの場合はこちら
#app.run(host='0.0.0.0',port=443,debug=True,ssl_context='adhoc')
0 件のコメント:
コメントを投稿