使用Rich扩展Django的功能。
项目描述
扩展以使用Rich与Django一起。
工作更智能、更快,我的书提升您的Django开发体验涵盖了提高开发体验的多种方式。我在写书时创建了django-rich!
需求
支持Python 3.8到3.12。
支持Django 3.2到5.1。
安装
使用
pip
安装python -m pip install django-rich
django-rich的所有功能默认均未激活。请按照下面的文档进行操作以使用它们。
参考
shell命令集成
django-rich具有Django内置
shell命令
的扩展版本,这启用了。要启用此功能,请将django_rich
添加到您的INSTALLED_APPS
设置中INSTALLED_APPS = [ ..., "django_rich", ..., ]
此功能仅影响Python和bypthon解释器,不影响IPython。有关IPython支持,请参阅Rich文档。
django_rich.management.RichCommand
这是Django的BaseCommand类的子类,将其self.console设置为Rich的Console。该Console使用命令的stdout参数,默认为sys.stdout。颜色显示根据Django的--no-color和--force-color标志启用或禁用。
按照您的喜好使用self.console的功能
from time import sleep
from django_rich.management import RichCommand
class Command(RichCommand):
def handle(self, *args, **options):
self.console.print("[bold blue]Frobnicating widgets:[/bold blue]")
with self.console.status("Starting...") as status:
for i in range(1, 11):
status.update(f"Widget {i}...")
sleep(1)
self.console.log(f"Widget {i} frobnicated.")
您可以通过覆盖make_rich_console类属性来自定义Console的构建。这应该是一个返回Console的可调用对象,例如functools.partial。例如,要禁用默认启用的markup和highlighting标志
from functools import partial
from django_rich.management import RichCommand
from rich.console import Console
class Command(RichCommand):
make_rich_console = partial(Console, markup=False, highlight=False)
def handle(self, *args, **options):
...
django_rich.test.RichRunner
这是一个Django的DiscoverRunner子类,具有彩色输出和友好的堆栈跟踪渲染。
要使用此类,将您的TEST_RUNNER设置指向它
TEST_RUNNER = "django_rich.test.RichRunner"
您也可以将其作为进一步自定义的基类。由于仅修改了输出,它应该与其他类很好地结合。
测试运行器提供以下功能
尽可能对输出进行颜色化。这包括Rich的默认高亮显示,将格式化数字、引号字符串、URL等。
失败和错误使用Rich的traceback渲染。这显示每个帧的源代码和局部值。每个帧还显示文件名和行号,在许多终端上,您可以通过点击链接跳转到该位置的文件。
当使用--debug-sql和--pdb标志时,输出也会进行颜色化。
Django的DiscoverRunner的所有其他标志将继续按正常方式工作。
CI上的输出宽度
当测试在您的CI系统上运行时,您可能会发现输出宽度不足以正确显示堆栈跟踪。这是因为Rich尝试自动检测终端尺寸,如果失败,它将默认为80个字符宽。您可以使用COLUMNS环境变量(如Python的shutil.get_terminal_size()函数)来覆盖此默认值
$ COLUMNS=120 ./manage.py test
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源代码发行版
构建分发
django_rich-1.11.0.tar.gz的散列值
算法 | 散列值摘要 | |
---|---|---|
SHA256 | d07fa5c57921240673b84f8fe57940e6ade034c1f7b481517e72bec524a0e126 |
|
MD5 | daa0db1e1e35b7c0ddfde75e0ddfd30f |
|
BLAKE2b-256 | fea3565d51de64a5079865f9fc82dd90df7cfe8cdeef7999ca7d1d6bb6e2b12f |
django_rich-1.11.0-py3-none-any.whl的散列值
算法 | 散列值摘要 | |
---|---|---|
SHA256 | 7e25f97c3b072df96f58bb76bdc0a7c40001315c3644da33a390efc95cd6cbdc |
|
MD5 | 6735a10af8d6868042d0b8b3e4494440 |
|
BLAKE2b-256 | f8495c6bd561e7cd82d2036990265a45d5ba8fbbf195e7e0e2d96ac1ffe1241e |