美文网首页
Flask web平台开发实战(3)- 测试用例管理模块的实现

Flask web平台开发实战(3)- 测试用例管理模块的实现

作者: 金鱼座 | 来源:发表于2019-07-28 09:53 被阅读0次

大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!

目前第一个完成的功能模块是测试用例模块
主要的业务功能就是用例的增删改,目前所有页面的查询均没有开展,故暂时不做说明

首先我要强调一下,根据不少教程,基本上在新建一个模块时,第一步都是维护其列表页面 ,也就是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数据, 实际上两者之间在提交数据和解析数据方面通过代码可以看到相差不大,对于普通的添加编辑功能来说,两者都可以。

相关文章

网友评论

      本文标题:Flask web平台开发实战(3)- 测试用例管理模块的实现

      本文链接:https://www.haomeiwen.com/subject/jeuerctx.html