Note
This repository is an official fork of the original BD103/Flask-Rich project. All releases after 0.3 will be published from this fork.
Flask-Rich is a Flask extension that implements the Rich programming library with Flask, which brings better logging / tracebacks with rich text formatting, and more features related to the console.
- 🌈 Better console logging powered by Rich's logging handler, with full support for console markup, highlighting, tracebacks and more
- 🚧 Builtin support for Werkzeug which runs the Flask development server
- 🔍 A new
rich-routes
Flask command that use Rich to show all routes - 🔧 Customizable and toggleable features
Just like any other Flask extension, you can initialize and register Flask-Rich with your Flask app in two ways:
from flask import Flask
from flask_rich import RichApplication
class Config:
RICH_LOGGING = True
app = Flask(__name__)
app.config.from_object(Config()) # or any other way to load config
# Initialize the extension with the app
rich = RichApplication(app)
@app.route("/")
def index():
return "Hello World!"
# rich.py
from flask_rich import RichApplication
# Initialize the extension without an app
rich = RichApplication()
# app.py
from flask import Flask
from .rich import rich
class Config:
RICH_LOGGING = True
def create_app:
app = Flask(__name__)
app.config.from_object(Config()) # or any other way to load config
# Register the extension with the app
rich.init_app(app)
# ...
return app
After registering, the RichApplication
class shall do all the work for you.
You can now use the app.logger
object to log rich text, and use the flask rich-routes
command to show all routes.
For further usage and configuration, please refer to the documentation.
If you have any suggestions or troubles using this extension, please feel free to open an issue.
Pull Requests are welcome!
You can setup your own copy of the source code with Git and Poetry:
# Git
git clone https://github.com/zyf722/Flask-Rich.git
cd Flask-Rich/
# Poetry
poetry lock
poetry install
poetry shell
It is strongly recommended to follow the Conventional Commits specification when writing commit messages and creating pull requests.
Thanks to the following people for their contributions:
- BD103 for creating the original project and maintaining it until version
0.3.1
- Will McGugan and all other contributors of the Rich project
- Pallets and all other contributors of the Flask project