Flask Web开发:处理POST请求实现登录功能

陆景行
陆景行
发布时间:2026-10-11 | 1人浏览过
原创

本文通过Flask框架实现一个完整的登录案例,详细讲解如何处理POST请求。内容涵盖应用目录创建、路由配置、模板渲染、重定向逻辑以及前端表单交互,帮助开发者掌握Flask中POST请求的处理机制。

Flask Web开发:处理POST请求实现登录功能

在Web开发中,处理用户提交的表单数据通常涉及POST请求。本文将通过一个具体的登录案例,展示如何使用Flask框架处理POST请求,实现用户登录功能。

1. 创建应用目录

首先,我们需要创建一个应用目录,并在该目录下创建 run.py 文件。这个文件将包含我们的Flask应用逻辑。

mkdir example
cd example

2. 编写Flask应用逻辑

在 run.py 文件中,我们导入必要的模块,并定义路由和处理函数。以下是完整的代码示例:

from flask import Flask
from flask import render_template, redirect,url_for
from flask import request

app = Flask(__name__)

@app.route('/login', methods=['POST','GET'])
def login():
  error = None
  if request.method == 'POST':
    if request.form['username']=='admin':
      return redirect(url_for('home',username=request.form['username']))
    else:
      error = 'Invalid username/password'
  return render_template('login.html', error=error)

@app.route('/home')
def home():
  return render_template('home.html', username=request.args.get('username'))

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

在上述代码中,我们定义了 /login 路由,它同时支持GET和POST请求。当用户提交表单时,我们检查用户名是否为 'admin',如果是,则重定向到 /home 页面,并传递用户名参数。否则,显示错误信息。

3. 创建模板文件

接下来,我们需要在应用目录下创建 templates 目录,并在该目录下创建 login.html 和 home.html 文件。

login.html

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
  <meta charset="utf-8">
  <title>login</title>
 </head>
 <body>
  <form style="margin:20px;border:1px solid red" method="post" action="/login">
    <span>username:</span><input type="text" name="username" id="username"><br/>
    <span>password:</span><input type="password" name="password" id="password"><br/>
    <button type="submit" id="loginBtn">login</button>
  </form>
  {% if error %}
    <h1 style="color:red">{{ error }}!</h1>
  {% endif %}
 </body>
</html>

home.html

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
  <meta charset="utf-8">
  <title>home</title>
 </head>
 <body>
  <h1>wlcome {{username}} , this is home</h1>
 </body>
</html>

4. 启动服务并测试

在应用目录下运行 python run.py 启动服务。然后,访问 http://192.168.142.138/login 进行登录测试。登录成功后,将被重定向到 http://192.168.142.138/home?username=admin。

5. 使用Session优化登录体验

为了避免在URL中传递用户名,我们可以使用Flask的Session功能。在 home.html 中,通过Session获取用户名,提升用户体验。

以上就是Flask Web开发处理POST请求实现登录功能的详细内容,更多关于Flask POST请求处理的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表