首页 > 解决方案 > 使用烧瓶传递变量python Web应用程序时出错

问题描述

我是编程新手,我知道那里有一些有用的东西,比如 wtforms,但我想在深入研究之前先练习一下。

这个想法是创建一个注册用户的网络应用程序,我认为最好将此逻辑与应用程序代码分开。

问题是我有这个错误信息: TypeError: register() takes 0 positional arguments but 3 were given 我很困惑,因为函数声明有位置参数,我写的代码是:

应用代码:

@app.route("/register", methods=["POST", "GET"])
def register():
    if request.method =="POST":
        if not user_name or not password or not pass_confirm:
            return ("all fields are mandatory, also consider to active javaScript for a better expirience",404)
    user_name = request.form.get("user_name")
    password = request.form.get("password")
    pass_confirm = request.form.get("user_name")
    register(user_name, password, pass_confirm)
    return render_template("/register.html")```

在另一个文件中:

def register(user_name, password, pass_confirm):
    if password != pass_confirm:
        return("Password and password confirmation must match")

标签: pythonfunctionwebflask

解决方案


您使用了没有参数的函数寄存器,因此请尝试重命名它。

代码将是

@app.route("/register", methods=["POST", "GET"])

定义注册():

if request.method =="POST":

    if not user_name or not password or not pass_confirm:

return ("all fields are mandatory, also consider to active javaScript for a better expirience",404)

user_name = request.form.get("user_name")

password = request.form.get("password")

pass_confirm = request.form.get("user_name")

register(user_name, password, pass_confirm)

return render_template("/register.html")```

在另一个文件中:


    if password != pass_confirm:

        return("Password and password confirmation must match")```

推荐阅读