【发布时间】:2016-10-01 10:56:44
【问题描述】:
我在测试 POST 以向数据库中添加一个类别时遇到了困难,我使用 Flask_WTF 进行验证和 CSRF 保护。对于 CRUD 操作 pm 我的网站。我使用过 Flask、Flask_WTF 和 Flask-SQLAlchemy。这是我的第一个独立项目,我发现自己对如何测试 Flask-WTForm validate_on_submit 函数有点迷茫。
以下是模型:
class Users(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(250), unique=True)
class Category(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
name = db.Column(db.String(250), nullable=False, unique=True)
users_id = db.Column(db.Integer, db.ForeignKey('users.id'))
这是表格:
class CategoryForm(Form):
name = StringField(
'Name', [validators.Length(min=4, max=250, message="name problem")])
这是控制器:
@category.route('/category/add', methods=['GET', 'POST'])
@login_required
def addCategory():
""" Add a new category.
Returns: Redirect Home.
"""
# Initiate the form.
form = CategoryForm()
# On POST of a valid form, add the new category.
if form.validate_on_submit():
category = Category(
form.name.data, login_session['users_id'])
db.session.add(category)
db.session.commit()
flash('New Category %s Successfully Created' % category.name)
return redirect(url_for('category.showHome'))
else:
# Render the form to add the category.
return render_template('newCategory.html', form=form)
如何使用 validate_on_submit 函数为 if 语句编写测试?
【问题讨论】:
标签: python python-2.7 wtforms flask-wtforms