No description
Find a file
Tang Vu d2e34be0f6 refactor: celery task result endpoint crashes on task failure
When a Celery task fails, `result.ready()` evaluates to `True` but `result.successful()` is `False`. 
Calling `result.get()` without `propagate=False` on a failed task will re-raise the task's exception, causing the Flask endpoint to crash with a 500 Internal Server Error instead of returning the task's failed status. 
Additionally, if `result.result` is an Exception object, returning it directly in the dictionary will cause a `TypeError` during JSON serialization.


Affected files: views.py

Signed-off-by: Tang Vu <vuminhtang2212@gmail.com>
2026-03-28 04:19:28 +07:00
.devcontainer update project files (#5457) 2024-04-07 10:24:40 -07:00
.github Merge branch 'stable' 2026-03-08 16:21:50 -07:00
docs Merge branch 'stable' 2026-03-04 07:36:21 -08:00
examples refactor: celery task result endpoint crashes on task failure 2026-03-28 04:19:28 +07:00
src/flask Merge branch 'stable' 2026-03-04 07:36:21 -08:00
tests remove unicode host test 2026-03-24 06:51:39 -07:00
.editorconfig update project files (#5457) 2024-04-07 10:24:40 -07:00
.gitignore use uv 2025-05-11 17:58:53 -07:00
.pre-commit-config.yaml Merge branch 'stable' 2026-03-08 16:21:50 -07:00
.readthedocs.yaml use uv 2025-05-11 17:58:53 -07:00
CHANGES.rst all teardown callbacks are called despite errors 2026-02-19 19:41:50 -08:00
LICENSE.txt update project files (#5457) 2024-04-07 10:24:40 -07:00
pyproject.toml fix editable werkzeug 2026-02-03 10:20:49 -08:00
README.md svg logo 2025-06-12 13:46:49 -07:00
uv.lock Merge branch 'stable' 2026-03-08 16:21:50 -07:00

Flask

Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja, and has become one of the most popular Python web application frameworks.

Flask offers suggestions, but doesn't enforce any dependencies or project layout. It is up to the developer to choose the tools and libraries they want to use. There are many extensions provided by the community that make adding new functionality easy.

A Simple Example

# save this as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"
$ flask run
  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Donate

The Pallets organization develops and supports Flask and the libraries it uses. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today.

Contributing

See our detailed contributing documentation for many ways to contribute, including reporting issues, requesting features, asking or answering questions, and making PRs.