你能在 flask-wtforms 中调整问题的宽度吗?

Can you adjust the width of a question in flask-wtforms?

我在 flask-wtforms 中有一个表格,它非常宽:

我想减少“患者是否吸烟”和“年龄”问题的宽度。 这是我正在使用的 flask-wtforms 代码:

class UploadForm(FlaskForm):
    upload = FileField('Select an image:', validators=[
        FileRequired(),
        FileAllowed(['jpg', 'png', 'jpeg', 'JPEG', 'PNG', 'JPG'], 'Images only!')
    ])

    smoke = SelectField(
        'Does the patient smoke?',
        choices=[('Yes', 'Yes'), ('No', 'No')]
    )

    name = StringField('Age')

    submit = SubmitField('Get Results')

并且在 HTML 中:

{{ wtf.quick_form(form) }}

但在移动设备上它并没有那么大,所以我需要减小宽度并仍然保持居中,但仅适用于笔记本电脑和计算机。

我从来没有在我的 html 中使用过 wtf.quick_form 但是当我调整我的表单大小时我使用这种语法:

{{ form.smoke(size=17) }}
{{ form.name(size=17) }}

使用 Bootstrap 可以解决您的问题。 Bootstrap 文档:https://getbootstrap.com/docs/4.5/getting-started/introduction/ 您需要将此样式表 link 放在 .html 文件的头部元素中。

如果您将 div 和 class 'col-md-6' 包裹在您的表单周围,那么它将使用屏幕宽度的一半作为元素。 Bootstrap 使用 12 段宽的网格,6 表示使用一半的网格。 如果您希望表单更小,请尝试 'col-md-4'。如果你想让它大一点,把它改成'col-md-8'。

让我知道这对您有何帮助! 干杯-安德鲁

<head>
     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
</head>

<div class="col-md-6">
     {{ wtf.quick_form(form) }}
</div>

您可以使用 render_kw 将样式直接添加到字段中,例如:

smoke = SelectField(
    'Does the patient smoke?',
    choices=[('Yes', 'Yes'), ('No', 'No')],
    render_kw={'style': 'width: 10ch'},
)

name = StringField(
    'Age',
    render_kw={'style': 'width: 7ch'},
)