form.py
class LoginForm(Form):
"""
For user to login.
"""
username = StringField(u'User Name:',validators=[
InputRequired(),
Regexp(ConfigRegex.RE_LOGIN_ID, message=ConfigRegex.RE_DESC_LOGIN_ID)])
passwd = PasswordField(u'Password:', validators=[
InputRequired(),
Regexp(ConfigRegex.RE_PASSWD, message=ConfigRegex.RE_DESC_PASSWD)])
submit = SubmitField(u'Log sIn')
^{pr2}$login.html with flask_wtf (submit button is working)
login.html with flask_wtf inside AngularJS < html ng-app> tag (submit button not working)
<html ng-app="loginApp">
////////////////////////////////////////////////////
//test form with flask (inside ng-app not working)
////////////////////////////////////////////////////
<form method="POST">
{{ form.hidden_tag() }}{# Render any hidden fields, including the CSRF #}
<div class="field">{{ form.username.label }} {{ form.username }}</div>
{{ macros.show_field_errors(form.username.errors) }}
<div class="field">{{ form.passwd.label }} {{ form.passwd }}</div>
{{ macros.show_field_errors(form.passwd.errors) }}
<div class="field">{{ form.submit }}</div>
</form>
///////////////// END //////////////////
<form name="editForm" method="post" id="login" class="form-signin" novalidate>
.....
.....
<span ng-class="{ 'has-error': editForm.password.$touched && editForm.password.$invalid }">
<div class="form-group input-group">
<input class="form-control" placeholder="Password" name="password" type="password" name='password' ng-model="password" g-maxlength="20" required>
</div>
<div class="help-block" ng-messages="editForm.password.$error" ng-if="editForm.password.$touched">
<p ng-message="required">Password is required</p>
<p ng-message="maxlength">Password is too long</p>
</div>
</span>
<button class="btn btn-lg btn-danger btn-block" type="submit" ng-disabled="!editForm.$valid">Login</button>
</form>
</html>
在Jinja2中使用AngularJS呈现页面的相同部分在默认情况下不会很好地工作,因为它们都使用标记}来插入模板中的变量。因此,您的角度
{{
和{{{varX}}
表达式将首先由Jinja2服务器呈现。在考虑在Jinja2中使用
{% raw %}
,因为它会跳过插值:或者您可以将AngularJS的标记更改为其他符号,例如}:
^{pr2}${$
和{以及:
相关问题 更多 >
编程相关推荐