Files

68 lines
1.6 KiB
Markdown

# flask-common
A Flask extension with lots of common time-savers (file-serving, favicons, etc).
An example app:
```python
import time
from flask import Flask
from flask_common import Common
app = Flask(__name__)
app.debug = True
common = Common(app)
@app.route("/")
@common.cache.cached(timeout=50)
def hello():
time.sleep(1)
return "Hello World!"
if __name__ == "__main__":
common.serve()
```
Next:
- Put a `favicon.ico` in your `static` folder.
- Enjoy!
## Nicities
HTTP Headers:
- `X-Powered-By: Flask`.
- `X-Processed-Time: 0.000133037567139`.
Other nice things:
- `@common.cache.cached(timeout=50)` decorator for caching views in memory.
- Favicon support (`/favicon.ico` redirects to `/static/favicon.ico`).
## Web Server: Gunicorn + Meinheld
Automatically uses Gunicorn + Meinheld for production (when `Flask.debug = False`), Flask's dev server for development.
Configuration environment variables:
- `WEB_CONCURRENCY` for specifying the number of synchronous gunicorn workers.
- `PORT` for binding to a specific port.
## File Server: WhiteNoise
Flask-Common automatically configures [WhiteNoise](http://whitenoise.evans.io) to serve your static files.
## Configurations
app.config['COMMON_FILESERVER_DISABLED'] = 1
app.config['COMMON_POWERED_BY_DISABLED'] = 1
app.config['COMMON_PROCESSED_TIME_DISABLED'] = 1
## Cache configures
By default *simple* is a default cache type. But can you change this options, following below steps. [Flask-Caching](https://pythonhosted.org/Flask-Caching/#configuring-flask-caching)
app.config['COMMON_CACHE_TYPE'] = "simple"