The Flask Mega-Tutorial

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • microblog

    The microblogging application developed in my Flask Mega-Tutorial series. This version maps to the 2024 Edition of the tutorial.

  • FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

    Speaking of backend development, recently I gave Jooby[1] a try after discovering it was one of the world's top performer in Tech Empower's web framework benchmark[2].

    Surprisingly enough, it's terribly easy to put together a REST API with Jooby. I wonder why it's adoption rate is so low.

    [1] https://jooby.io/

    [2] https://www.techempower.com/benchmarks/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Jooby

    The modular web framework for Java and Kotlin

    Speaking of backend development, recently I gave Jooby[1] a try after discovering it was one of the world's top performer in Tech Empower's web framework benchmark[2].

    Surprisingly enough, it's terribly easy to put together a REST API with Jooby. I wonder why it's adoption rate is so low.

    [1] https://jooby.io/

    [2] https://www.techempower.com/benchmarks/

  • fastapi

    FastAPI framework, high performance, easy to learn, fast to code, ready for production

    Not OP, but I think OP meant about: https://fastapi.tiangolo.com/

    FastAPI is async web-framework for Python comparable [0] to Flask.

    [0] IMHO comparable only at "hello world" level as FastAPI is much more and uses a lot of goodies of newer Python versions (typing, asyncio, etc.)

  • flask-tables

    Beautiful Interactive tables in your Flask templates.

    This is really a matter of preference. I do not use Flask-Admin on my projects, I have always preferred to design my own admin pages than being forced to accept the choices that are imposed by these big extensions. This allows me to have a consistent UI across admin and non-admin pages.

    One are that people often complain is that it is hard and/or tedious to build tables with data, which is one of the building blocks most admin pages need. Last year I wrote a blog article where I show how I build tables in my Flask apps: https://blog.miguelgrinberg.com/post/beautiful-interactive-t....

  • jsonify

    UI wrapper for flask's jsonify

  • django-ninja

    💨 Fast, Async-ready, Openapi, type hints based framework for building APIs

    I quite like the look of Django-Ninja (https://django-ninja.rest-framework.com). It's inspired by FastAPI but plays nicely with Django.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • APIFairy

    A minimalistic API framework built on top of Flask, Marshmallow and friends.

    Not sure what you mean by "ignoring async". If you write your handlers as regular functions, I would imagine FastAPI is going to send them to run in an executor. So all the concurrency benefits of FastAPI go down the drain, and now your concurrency is based on threads.

    As far as Swagger integration, you can use APIFairy with Flask and get similar type of auto-generated docs. Disclaimer, APIFairy is an extension that I created: https://github.com/miguelgrinberg/APIFairy

  • flask-mvc-boilerplate

    Flask boilerlate in MVC format

    strongly disagree with this. flask is what you make of it. you create your design patterns. for example, here's an MVC boilerplate i use for all my flask apps: https://github.com/esteininger/flask-mvc-boilerplate

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts