关于python:Flask Admin:具有等宽字体的TextArea

Flask Admin: TextArea with monospace font

我有一个数据库表,其列类型为"文本"。 Flask-Admin在TextArea字段中显示此文本,并允许我对其进行编辑。但是,我希望文本以等宽字体显示。我该怎么办?

我知道我可以通过创建视图类来影响Flask-Admin创建的小部件。例如。增加文本区域的高度:

1
2
class MyView(sqla.ModelView):
    form_widget_args = {'description' : {'rows' : 100}}

(其中'description'是我的文本列的名称)。是否有与'rows'关键字等效的关键字,可让我切换到等宽字体?我找不到允许的关键字的完整列表。


窗口小部件参数字典的" allowed keyword "只是可以为输入字段指定的各种HTML属性。也就是说,像style这样的属性(如下所示)是所有HTML标记的有效属性。

您应该能够通过指定表单小部件的style以使用等宽字体来完成所需的操作。

1
2
3
4
5
6
form_widget_args = {
    'description': {
        'rows': 100,
        'style': 'font-family: monospace;'
    }
}

style字段中,您可以指定要应用于小部件的任何有效CSS,就像在标准HTML中一样。相当于HTML的是:

1
<textarea rows="100" style="font-family: monospace;"></textarea>

如果您确实想全面地指定字体系列,则可以执行以下操作,该操作将在默认使用系统等宽字体之前搜索所有列出的字体。

1
2
3
4
5
6
form_widget_args = {
    'description': {
        'rows': 100,
        'style': 'font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;'
    }
}