本文详细探讨了使用 flask 构建用户注册功能时常见的路由配置问题及其解决方案。通过一个实际案例,我们深入分析了 html 表单 action 属性与 flask 路由定义不匹配导致的 404 错误,并提供了正确的配置方法。教程还涵盖了表单数据获取、密码哈希、postgresql 数据库交互以及重要的安全实践,旨在帮助开发者构建一个安全且功能完善的用户注册系统。
在 Flask 应用中,每个可访问的 URL 都需要通过 @app.route() 装饰器进行定义。当用户通过 HTML 表单提交数据时,表单的 action 属性指定了数据将被发送到的 URL。如果这个 action URL 与 Flask 应用中定义的处理该请求的路由不
匹配,就会导致“404 Not Found”错误。
问题分析: 原始代码中,Flask 应用定义了一个 /register 路由来处理用户注册请求,并允许 POST 和 GET 方法:
@app.route("/register", methods=["POST","GET"])
def register():
# ... registration logic ...然而,HTML 表单的 action 属性却指向了 /sign_in?stage=login: