else: return 和 return的区别心得

这是一个表单提交,一开始我是用else:return 响应的GET请求(当请求方式为POST就进入if 当请求方式为其他就进入else)
@app.route('/register', methods=["post", "get"])
def form():
    if request.method == "POST":

        # 取到表单中提交上来的三个参数
        username = request.form.get("username")
        password = request.form.get("password")
        password2 = request.form.get("password2")

        # 只要有一个参数没有值就报错
        if not all([username, password, password2]):
            # 向前端界面弹出一条提示(闪现消息)
            flash("参数不足")
        elif password != password2:
            flash("两次密码不一致")
        else:
            # 假装做注册操作
            print(username, password, password2)
            return "success"

    else:
        return render_template("form_wtf.html")

# 但是在网页提交表单时会产生错误 ValueError: View function did not return a response

把else 去掉就能正常提交

@app.route('/register', methods=["post", "get"])
def form():
    if request.method == "POST":

        # 取到表单中提交上来的三个参数
        username = request.form.get("username")
        password = request.form.get("password")
        password2 = request.form.get("password2")

        # 只要有一个参数没有值就报错
        if not all([username, password, password2]):
            # 向前端界面弹出一条提示(闪现消息)
            flash("参数不足")
        elif password != password2:
            flash("两次密码不一致")
        else:
            # 假装做注册操作
            print(username, password, password2)
            return "success"

    
    return render_template("form_wtf.html")
else相当于进入新的内存,新的内存中并不运行视图函数的if.当没有else时,相当于始终在一个内存中运行的,会执行if request.method == "POST"下的代码.

你可能感兴趣的:(else: return 和 return的区别心得)