Short Notes on Flask and Flask-RestPlus
From PaskvilWiki
Contents
Structuring the Project
Handling Requests
File Upload
@ns.route('/') class Handle(Resource): @ns.param('data', description='We will just return this.', _in='formData', type='string', required=True) @ns.param('file', description='We will save this as /tmp/test.jpg.', _in='formData', type='file', required=True) def post(self): with open('/tmp/test.jpg', 'wb') as f: f.write(request.files['file'].read()) return {'data': request.form['data']}
"MySQL server has gone away" with (Flask-)SQLAlchemy
On infrequently used connections, most cloud hosts kill unused DB connections after some time.
This is a problem if your SQLAlchemy connection pool is not recycled often enough.
You can just lower the recycle time to solve this. It is also good to increase the pool size to handle the case where your load increases (at times):
app.config['SQLALCHEMY_POOL_SIZE'] = 100 app.config['SQLALCHEMY_POOL_RECYCLE'] = 240
Default is size = 10, recycle = 7200
, but many cloud providers kill inactive connections after about 5 min, thus the 4 min period above.