大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!
目前第一个完成的功能模块是测试用例模块
主要的业务功能就是用例的增删改,目前所有页面的查询均没有开展,故暂时不做说明
首先我要强调一下,根据不少教程,基本上在新建一个模块时,第一步都是维护其列表页面 ,也就是list页面,当然这不是绝对,根据自己习惯
视图实现:
列表页面
@case_app.route("/case/list/<int:page>", methods=["GET"])
def case_list(page=None):
form = CaseForm()
if page is None:
page = 1
pagedata = db.session.query(_Case, Product).join(Product, _Case.proid == Product.id).order_by(_Case.createtime.desc()).paginate(page=page, per_page=10)
# data = [dict(zip(result.keys(), result)) for result in pagedata]
return render_template("t_case/case_list.html", pagedata=pagedata, form=form)
添加功能
@case_app.route("/case/add/", methods=["POST"])
def case_add():
form = request.form
codecount = _Case.query.filter_by(casecode=form["casecode"]).count()
if codecount > 0:
flash("已经存在该记录", "no")
else:
_case = _Case()
_case.proid = form["proid"]
....省略...
_case.caseresult = form["exceptresult"]
db.session.add(_case)
db.session.commit()
flash("添加成功", "yes")
return redirect(url_for("case_app.case_list", page=1))
编辑功能
@case_app.route("/case/edit/<int:id>", methods=["POST"])
def case_edit(id=None):
form = CaseForm()
if form.validate_on_submit():
form = form.data
print(form["casecode"])
codecount = _Case.query.filter_by(casecode=form["casecode"]).count()
case = _Case.query.filter_by(id=id).first()
print(case.casecode, form["casecode"], case.casecode == form["casecode"])
if codecount > 0 :
if case.casecode != form["casecode"]:
flash("存在相关记录", "no")
else:
flash("未修改内容", "no")
else:
_case = _Case.query.filter_by(id=id).first()
_case.proid = form["proid"]
...此处省略...
_case.caseresult = form["caseresult"]
db.session.merge(_case)
db.session.commit()
flash("编辑成功", "yes")
return redirect(url_for("case_app.case_list", page=1))
删除功能
@case_app.route("/case/del/<int:id>", methods=["GET"])
def case_del(id=None):
case = _Case.query.filter_by(id=id).first()
db.session.delete(case)
db.session.commit()
flash("删除用例成功", "yes")
return redirect(url_for("case_app.case_list", page=1))
可能细心的朋友发现我的编辑和删除中关于form的取值方式不一样,是的,这里面,我一个使用了wtform的表单功能,一个是最普通的action提交form数据, 实际上两者之间在提交数据和解析数据方面通过代码可以看到相差不大,对于普通的添加编辑功能来说,两者都可以。