Skip to content
forked from BD103/Flask-Rich

Rich implementation for Flask, a maintained fork for the original Flask-Rich

License

Notifications You must be signed in to change notification settings

zyf722/Flask-Rich

 
 

Repository files navigation

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.


License PyPI version PyPI - Python Version Documentation Status

Flask-Rich

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.

asciicast

Features

  • 🌈 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

Basic Usage

Just like any other Flask extension, you can initialize and register Flask-Rich with your Flask app in two ways:

Single File

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!"

Factory Pattern

# 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.

Feedback

If you have any suggestions or troubles using this extension, please feel free to open an issue.

Contributing

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.

Credits

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

About

Rich implementation for Flask, a maintained fork for the original Flask-Rich

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Python 98.9%
  • Nix 1.1%