使用带有web.py表单的bootstrap

时间:2013-07-24 06:09:22

标签: html forms web.py

我在我的后台使用web.py来生成表单。我也想使用bootstraps表单类。这是我的HTML

的片段
  <form name="test" method="POST"> 
  $:form.render()
  <input type="submit" name="button" value="Login" />
  </form>

当由web.py生成时,变为

<form name="login" method="POST" class = "register"> 
<table>
    <tr><th><label for="username">Username:</label></th><td><input type="text" id="username" name="username"/></td></tr>
    <tr><th><label for="password">Password:</label></th><td><input type="password" id="password" name="password"/></td></tr>
    <tr><th><label for="password_again">Repeat your password:</label></th><td><input type="password" id="password_again" name="password_again"/></td></tr>
</table>
<input type="submit" value="Register" />
</form>

然而。这使得很难在我的代码中添加引导功能。 直接来自bootstrap网站的一个例子是:

<form>
  <fieldset>
    <legend>Legend</legend>
    <label>Label name</label>
    <input type="text" placeholder="Type something…">
    <span class="help-block">Example block-level help text here.</span>
    <label class="checkbox">
      <input type="checkbox"> Check me out
    </label>
    <button type="submit" class="btn">Submit</button>
  </fieldset>
</form>

是否可以在表单中添加这些功能?

2 个答案:

答案 0 :(得分:1)

改为使用$:form.render_css()

答案 1 :(得分:0)

我使用修改后的Form方法编写了从render_css类继承的类。它看起来像那样:

class bootstrap_form(form.Form):
def render_bootstrap(self):
    from web import net
    out = []
    out.append(self.rendernote(self.note))
    for i in self.inputs:
        out.append('<div class="form-group">')
        if not i.is_hidden():
            out.append('<label for="%s">%s</label>' % (i.id, net.websafe(i.description)))
        out.append(i.pre)
        out.append(i.render())
        out.append(self.rendernote(i.note))
        out.append(i.post)
        out.append('</div>')
        out.append('\n')
    return ''.join(out) 

我希望你会发现这很有用。