mirror of
https://github.com/kennethreitz/flask-common.git
synced 2026-06-05 23:00:19 +00:00
68 lines
1.6 KiB
Markdown
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"
|