Tag: jinja2

使用Flask Jinja2和WTForms隐藏表单组

我正在尝试根据表单另一部分中复选框的状态显示或隐藏表单字段。 我认为我可以用jQuery .show()或.hide()相对容易地做到这一点,但到目前为止我没有太多运气。 有什么想法吗? 表单类: class MyForm(Form): checked = BooleanField(‘Check this box:’) date = DateField(‘Date:’, format=’%Y-%m-%d’, id=”dates”) submit = SubmitField(‘Submit’) 模板: {% import “bootstrap/wtf.html” as wtf %} {% block content %} {{ form.hidden_tag() }} {{ wtf.form_field(form.checked) }} {{ wtf.form_field(form.date) }} {{ wtf.form_field(form.submit) }} {% endblock %} {% block scripts %} jQuery(document).ready(function() { $(“#checked”).change(function() { if(this.checked) […]

如何在不刷新页面的情况下在烧瓶中创建链式选择域?

我目前正在使用wtf处理地址表单,其中包含Country,State,City ..等等。 数据库全部使用FK设置。 class Country(db.Model): __tablename__ = ‘countries’ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship(‘User’, backref=’countries’, lazy=’dynamic’) class City(db.Model): __tablename__ = ‘cities’ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) countries_id = db.Column(db.Integer, db.ForeignKey(‘countries.id’)) 现在我正在尝试实现链式选择域排序效果以优化用户体验。 期望的效果是不离开或刷新页面以使selectfield拉取数据取决于先前的选择字段。 例如,用户在国家/地区选择澳大利亚,然后国家的第二个选择区域应仅包含澳大利亚的州。 我已经对这个主题做了一些研究,但却无法提出令人满意的解决方案。 以下是我发现的两种可能尚未解决的解决方案。 1.使用jQuery-plugin,例如Chained。 但是,此插件需要逐行编码。 如果我采用这种解决方案,那么至少会有另外400多条线路,这不是非常pythonic。 例如: — 3 series 5 series 6 series A3 […]

避免来自Jinja2的含糊不清的胡须,包括jQuery模板

我正在尝试将jQuery模板插入到Jinja2模板中。 唉,他们(在默认设置中)分别使用胡须{{ & }}来表示表达式和文字。 我正在使用script标记将我的jQuery模板插入HTML,如下所示: The people are: {{ each people }} ${$value} {{ /each }} 然而,如果以上是在Jinja模板中,它会因为Jinja试图将each解释为文字而贬低。 在这种情况下(我们已经有很多模板),改变Jinja2的变量开始和结束分隔符是不切实际的。 此外,它令人困惑,降低了互操作性,并需要额外的培训。 最好避免使用此选项。 所以我想到的两个替代方案就是: Jinja2逃避每个'{{‘和’}}’,我不太确定如何做得最好(“{{”{{“}}`,也许,但这很冗长); 更实际 – 也许是理想的 – 会告诉Jinja2 不要解析代码块,也许是通过jQuery扩展。 我很感激你的想法和反馈。 谢谢你的阅读。