Metadata-Version: 2.4
Name: flaskteroids
Version: 0.1.2
Summary: Flask on steroids
Author: Juan Sebastian Quintero
License: MIT License
        
        Copyright (c) 2025 Juan Sebastian Quintero
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Flask
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: alembic>=1.15.1
Requires-Dist: Flask
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: sqlalchemy
Requires-Dist: celery
Dynamic: license-file

<p align="center">
  <a href="https://github.com/nullco/flaskteroids">
    <img src="https://raw.githubusercontent.com/nullco/flaskteroids/main/docs/images/logo.png" alt="Flaskteroids Logo" width="200">
  </a>
</p>

<h1 align="center">Flaskteroids</h1>

<p align="center">
  <strong>Flaskteroids: A complete, batteries-included Python MVC framework inspired by Ruby on Rails.</strong>
</p>

<p align="center">
  <a href="https://github.com/nullco/flaskteroids/actions/workflows/test.yml?query=branch%3Amain++" target="_blank">
    <img src="https://github.com/nullco/flaskteroids/actions/workflows/test.yml/badge.svg?event=push&branch=main" alt="Build Status">
  </a>
  <a href="https://pypi.org/project/flaskteroids/" target="_blank">
    <img src="https://img.shields.io/pypi/v/flaskteroids.svg" alt="PyPI Version">
  </a>
  <a href="https://pypi.org/project/flaskteroids/" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/flaskteroids.svg" alt="Python Versions">
  </a>
  <a href="https://github.com/nullco/flaskteroids/blob/main/LICENSE" target="_blank">
    <img src="https://img.shields.io/github/license/nullco/flaskteroids.svg" alt="License">
  </a>
</p>

---


**Flaskteroids** (or Flask on Steroids) is a lightweight yet powerful Python MVC framework that supercharges **Flask** with a clean, elegant structure. Inspired by the best of **Ruby on Rails**, it brings clarity and productivity to your web development workflow.

Built on the philosophy of **convention over configuration**, Flaskteroids helps you move fast, write less code, and stay focused on what matters: building scalable, maintainable applications with confidence.

With a **batteries-included** approach and carefully chosen core dependencies, Flaskteroids stays lean, fast, and secure — giving you everything you need, and nothing you don’t.

## Features

- **Full MVC Architecture**: Clean separation of concerns with Models, Views, and Controllers.
- **Elegant Routing**: Intuitive and resourceful routing.
- **Built-in ORM**: Seamless integration with SQLAlchemy and Alembic for database management and migrations.
- **Background Jobs**: Integrated with Celery for easy background job processing.
- **RESTful by Design**: Quickly build API routes with JSON responses.
- **Powerful CLI**: A rich set of commands for generating models, controllers, mailers, scaffolds, and more.
- **Flask Compatibility**: Retains the full power of Flask and its rich ecosystem.

## Table of Contents

- [Installation](#installation)
- [Getting Started](#getting-started)
  - [Creating a New App](#1-creating-a-new-app)
  - [Running the Server](#2-running-the-server)
  - [Your First Feature: A Blog](#your-first-feature-a-blog)
- [Security](#security)
  - [Rate Limiting](#rate-limiting)
- [Command-Line Interface (CLI)](#command-line-interface-cli)
  - [Generators](#generators)
- [License](#license)

## Installation

To get started, install the Flaskteroids package using `pip`:

```sh
pip install flaskteroids
```

## Getting Started

### 1. Creating a New App

Create a new Flaskteroids application using the `flaskteroids new` command:

```sh
flaskteroids new my_project
cd my_project
```

This creates a new directory called `my_project` with a standard application structure.

### 2. Running the Server

To start the development server, run:

```sh
flask run
```

Now, open your browser and navigate to `http://127.0.0.1:5000`. You should see the Flaskteroids welcome page!

## Your First Feature: A Blog

Let's create a simple blog to see the power of scaffolding.

1.  **Create a new app:**
    This command will create a new Flaskteroids application in a directory called `my_blog`.

    ```sh
    flaskteroids new my_blog
    cd my_blog
    ```

2.  **Generate a Post scaffold:**
    This command will create the model, controller, views, and database migration for a `Post` resource with `title` and `content` fields.

    ```sh
    flask generate scaffold Post title:string content:text
    ```

3.  **Run the database migration:**
    Apply the changes to your database schema.

    ```sh
    flask db:migrate
    ```

4.  **Start the server:**

    ```sh
    flask run
    ```

Now, visit `http://1227.0.0.1:5000/posts` in your browser. You have a complete set of pages to create, view, update, and delete posts.


For more check out the [documentation](docs/)


## License

Flaskteroids is open-source and released under the [MIT License](LICENSE).
