如何使用wtforms指定<textarea>标签的行和列

20 投票
9 回答
20968 浏览
提问于 2025-04-16 11:26

创建一个wtforms的文本区域字段大概是这样的:

content = wtf.TextAreaField('Content', id="content-area", validators=[validators.Required()])

我该如何指定这个文本区域的行数和列数呢?

9 个回答

5

有一个关于Flask的教程,来自nettuts+。基本上,它的工作原理是这样的:

from flask.ext import wtf

class ContactForm(wtf.Form):
    content = wtf.TextAreaField("Content", [validators.Required()])

然后在你的html文件中:

<form action="" method="post">
    {{ form.content }}
</form>

你可以选择不在html中指定布局,而是在css中指定,比如:

form textarea#content {
     width: 100px;
     height: 100px;
     max-width: 100px;
}
15

更简单的方法是,在创建字段的时候使用 render_kw 这个参数:

port = IntegerField(u"HTTP port", validators=[DataRequired(), NumberRange(1025, 65535)], render_kw={'class': 'form-control'})
mytextarea = TextAreaField(u"Content", render_kw={'class': 'form-control', 'rows': 5})

然后渲染这个文件:

{{ field() }}
28

你不应该在声明这个小部件的地方去做这件事。你应该在模板里去做。例如:

{{form.content(rows='50',cols='100')}}

需要确保行和列是以字符串的形式指定的。

撰写回答