Full stack web framework
Project description
Full stack Python web framework to build websites and web apps with as little boilerplate as possible
⚠️ This is a work in progress project which is not functionnal yet ⚠️
A Flask-based (very) opiniated Python web framework where all the tech choices have been made. Hyperflask combines multiple Flask extensions and frontend libraries into a seamless experience.
This project is part of the Hyperflask Stack.
Features and technologies:
- Web framework built on top of Flask as a set of extensions
- File-based and/or app-based routing
- A new file format combining python code in frontmatter and html templates to define routes
- SQL focused ORM with sqlorm, optimized for sqlite
- Modern asset pipeline using esbuild and tailwindcss
- Deep integration with htmx
- Easily create reusable backend and frontend components, compatible with Storybookf
- Build frontend components using Web Components, Alpine.js, Stimulus and more. Mix technologies at will.
- Component library based on daisyUI with icons from Bootstrap Icons
- Seamless reactivity between frontend and backend
- Authentication and user management with social logins and MFA
- Static content collections to easily create blogs and manage static content
- File management with built-in image manipulation and S3 integration
- Template based emails with mjml support
- Background tasks using dramatiq
- Push support for realtime pages using server-sent events
- I18n using gettext
- Easily create REST APIs and automatically generate documentation
- Static, hybrid or dynamic modes for content serving
- Observable with OpenTelemetry
Hyperflask-Start should be used to create new projects:
- Dev environment based on Development Containers
- Optimized for VScode with breakpoint debugging for frontend and backend
- Mailpit for email testing
- Deployments using Hyperflask-Deploy
Project status
Hyperflask is being actively developed and is not yet ready to be used.
Checkout the list of all the projects developed as part of the Hyperflask Stack and their current development status on the Hyperflask Github organization homepage.
Status overview:
Feature | Status |
---|---|
Core experience (start project, dev, deploy) | 🚧 |
File based routing with mix code page format | ✅ |
ORM | ✅ |
Assets pipeline | ✅ |
Component system + component library | 🚧 (component system almost done, need to create macros for daisyui) |
SSE push | ✅ |
Collections | 🚧 (finalizing) |
Upload files | 🚧 (missing S3 improvements) |
Emails | 🚧 |
User management and auth | 🚧 |
Static site generation | ❌ |
I18n | 🚧 (finalizing) |
PWA | ❌ |
Runner | ✅ |
Flask extensions
Hyperflask itself is minimal and mostly a collection of Flask extensions seamlessly integrated together.
A good part of these extensions is developed as part of the Hyperflask project. Checkout the Hyperflask organization page for a list of all these projects.
Name | Description |
---|---|
Flask-Apispec-Hyper | Flask-Apispec fork with updates and fixes |
Flask-Assets-Pipeline | Modern asset pipeline using esbuild |
Flask-Babel-Hyper | Flask-Babel fork with additional utilities |
Flask-Collections | Manage collections of static content |
Flask-Configurator | File based configuration |
Flask-DebugToolbar | Debug Toolbar |
Flask-Dramatiq | Background tasks powered by Dramatiq |
Flask-File-Routes | File-based routing with a new file format combining python and jinja template in a single file |
Flask-Files | Fsspec based files management (upload, storage and image manipulation) |
Frozen-Flask | Generate a static website from your Flask app |
Flask-Geo | Geolocation using Maxmind |
Htmx-Flask | HTMX integration for Flask |
Flask-Login | User session management |
Flask-Mailman | Send emails |
Flask-Mailman-Templates | Email templates for Flask-Mailman |
Flask-Mercure-SSE | Push events via server-sent events using the Mercure protocol |
Flask-Observability | Observable Flask apps with OpenTelemetry, logging and more |
Flask-SQLORM | Flask integration of sqlorm |
Flask-Super-Macros | Better macro management for Jinja |
Flask-Talisman | HTTP security headers for Flask |
Flask-WTF | WTForms integration |
Using without Hyperflask-Start
- Create your project directory:
mkdir example-project && cd example-project
- Create and activate a virtualenv:
python -m venv .venv && source .venv/bin/activate
pip install hyperflask
- Create a pages directory:
mkdir pages
- Create your index page:
echo "hello world" > pages/index.html
- Start a development server using
hyperflask dev
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hyperflask-0.1.6.tar.gz
.
File metadata
- Download URL: hyperflask-0.1.6.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.8.0-40-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf1f1b529b9451f7cb72a3f8559201b6bafd60ff5f009de844e7e8b90bf681d4 |
|
MD5 | 5e5028f1335a12710d2741f0a586f7d9 |
|
BLAKE2b-256 | c019158d4d86b01cbffd17b434d89170111cce3b7382b6a770ffe38d94aa956d |
File details
Details for the file hyperflask-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: hyperflask-0.1.6-py3-none-any.whl
- Upload date:
- Size: 39.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.8.0-40-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a33b5a9851611d25f918fbb217b8a2f9896ef13116ce0372e60aee9a9eb20941 |
|
MD5 | ba0971686e125025bf53e0f596752b9b |
|
BLAKE2b-256 | 2374f94c0217de7cc46f5571388c9e69bf445c47aa7f5b6d699437edfe88319d |