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

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

本文通过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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。