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 件のコメント:
コメントを投稿