讲师中心 微信公众号
AI工具推荐 视频效率加速

Flask 后端 404 错误的根源与正确处理方案

陌芳吖_8581

陌芳吖_8581

发布时间:2026-10-31 18:56:05

|

386人浏览过

|

来源于php中文网

原创

Flask 后端 404 错误的根源与正确处理方案

访问 Flask 服务器根路径 / 返回 404,是因为未定义对应 GET 路由;而 /execute-file/ 是 POST 接口,浏览器直接访问会因方法不匹配触发 404。需明确定义首页路由,并用工具(如 Postman)测试 API。

访问 flask 服务器根路径 `/` 返回 404,是因为未定义对应 get 路由;而 `/execute-file/` 是 post 接口,浏览器直接访问会因方法不匹配触发 404。需明确定义首页路由,并用工具(如 postman)测试 api。

当你在浏览器中输入 http://127.0.0.1:8000 并回车时,浏览器默认发起一个 GET 请求 到根路径 /。而你的 Flask 应用中仅注册了:

@app.route('/execute-file/', methods=['POST'])
def execute_file():
    # ...

该路由只响应 POST 方法,且路径为 /execute-file/ —— 它既不匹配 /,也不接受 GET,因此 Flask 找不到任何可处理该请求的视图函数,最终返回标准的 404 Not Found 响应。

✅ 正确做法:补全基础路由 + 区分访问方式

1. 添加首页(根路径)路由

为支持浏览器直接访问,需显式定义 / 的 GET 处理器:

@app.route('/', methods=['GET'])
def home():
    return jsonify({
        "message": "Flask backend is running",
        "endpoints": {
            "execute-file": "POST /execute-file/"
        }
    })

? 提示:返回 JSON 更利于前后端联调;若需渲染 HTML 页面,可用 render_template("index.html")。

2. 正确测试 POST 接口

/execute-file/ 是纯 API 接口,不可通过浏览器地址栏直接触发(地址栏只发 GET)。请使用以下任一方式验证:

Flask Wrap
Flask Wrap

火焰围攻 授权: q15040409-creator.功能概述火焰围攻 授权: q15040409-creator.是一项面向实际任务的技能,主要用于Description.;Flask Web. - Python.;核心要点HTTP?;.Version.1.0.tags. wrap.github.automation.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用与执行使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要

下载
  • Postman:设置请求方法为 POST,URL 为 http://127.0.0.1:8000/execute-file/,Body → form-data 中添加键 fileName(值如 test.py);
  • curl 命令:
    curl -X POST http://127.0.0.1:8000/execute-file/ \
         -F "fileName=test.py"
  • Flutter 客户端调用(示例):
    final response = await http.post(
      Uri.parse('http://127.0.0.1:8000/execute-file/'),
      body: {'fileName': 'script.py'},
    );

3. 增强调试能力(推荐)

在开发阶段,建议补充日志与错误兜底:

@app.errorhandler(404)
def not_found(error):
    return jsonify({"error": "Endpoint not found", "path": request.path}), 404

@app.errorhandler(500)
def internal_error(error):
    app.logger.error(f"Server error: {error}")
    return jsonify({"error": "Internal server error"}), 500

同时确保 app.run() 前已注册所有 handler(即放在 if __name__ == '__main__': 之前),避免因注册顺序导致失效。

⚠️ 注意事项

  • 不要依赖浏览器访问 POST 接口:这是初学者常见误区。HTTP 方法语义必须严格匹配。
  • CORS 已启用,但跨域调试仍需注意前端 origin:若 Flutter Web 运行在 http://localhost:3000,确保 CORS(app) 允许该源(默认允许全部,生产环境请限制)。
  • 安全提醒:subprocess.run 直接执行用户传入的文件名存在严重命令注入风险!务必对 fileName 做白名单校验或路径隔离(如限定在 lib/execute/ 下且禁止 ../)。

完成上述配置后,你的 Flask 服务将:

  • 浏览器访问 http://127.0.0.1:8000 → 返回欢迎 JSON(200);
  • Postman 发送 POST 到 /execute-file/ → 正常执行并返回结果;
  • 访问任意未定义路径(如 /abc)→ 返回结构化 404 响应,便于前端识别。

这才是健壮、可调试、符合 REST 规范的 Flask API 基础架构。

热门AI工具

更多
PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2763

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6930

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

6426

2024.03.19

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

1831

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

4944

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1789

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

29717

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3547

2023.08.04

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Flask-Migrate数据库迁移文档
Flask-Migrate数据库迁移文档

共0课时 | 0人学习

Flask官方快速入门文档
Flask官方快速入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn