繁体   English   中英

Flask 中的 POST 方法

[英]POST method in Flask


app = Flask(__name__)

@app.route('/')

def home():
    return render_template("home.html")

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

def login_page():
    if request.method == "POST":
        user=request.form["login"]
        return redirect(url_for("user",usr=user))
    else:
        return render_template("login_page.html") 

@app.route('/register_page')

def register_page():
    return render_template("register_page.html")

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

@app.route("/<usr>")

def user(usr):
    return f"<h1>{usr}</h1>"

if __name__ == '__main__':
    app.run(debug=True)

这是我的错误类型错误:用户()缺少 1 个必需的位置参数:'usr',我不明白用户 function 缺少参数的位置

这是我的文件夹树

https://i.stack.imgur.com/5pvkT.png

您已经像这样定义了您的user function :

def user(usr)

这表示它需要一个位置参数。 您有两条路线指向此 function:

- @app.route('/home', methods=["GET","POST"])
- @app.route("/<usr>")

只有第二条路线提供了必要的usr变量。 当您访问路线/home时,您将收到您在问题中显示的TypeError

根据您希望 function 在未指定用户时的行为方式,让第二个 function 处理/home可能更有意义。 也许这应该是home function 的替代路线?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM