FastAPI sizzles, Django dazzles. The best of both worlds in one framework.
Project description
Cotlette 🚀
Cotlette is a modern web framework built on top of FastAPI , offering convenient tools for rapid web application development. Inspired by Django, it includes its own ORM, template rendering support, and built-in commands for project management, as well as an admin panel.
Quick Start
Create a new project and launch the development server in just a few steps:
Create a new project:
pip install cotlette
cotlette startproject myproject
cd myproject
Start the development server:
cotlette runserver
Open your browser and navigate to http://127.0.0.1:8000.
Login page:
Admin page:
Prerequisites
- Python 3.6 or higher
- pip (for installing dependencies)
Key Features
- FastAPI Under the Hood : Leverage the full power of FastAPI to create high-performance APIs.
- Custom ORM : A user-friendly interface for working with databases, similar to Django's ORM.
- Template Rendering : Built-in support for rendering HTML pages.
- Development Commands
- Minimalist Design : A simple and intuitive project structure that is easy to extend.
- Asynchronous Support : Full support for asynchronous operations to maximize performance.
Commands
Cotlette provides a set of commands for convenient project management:
- cotlette startproject <project_name> : Creates a new project structure.
- cotlette startapp <app_name> : Creates a new application within the project.
- cotlette runserver : Starts the development server.
- cotlette shell : Launches an interactive console for working with the project.
Usage Examples
Creating a Model
from cotlette.db import Model, fields
class Article(Model):
title = fields.CharField(max_length=200)
content = fields.TextField()
published_at = fields.DateTimeField(auto_now_add=True)
Creating a View
from fastapi import APIRouter
from cotlette.shortcuts import render_template
from .models import Article
router = APIRouter()
@router.get("/")
async def home():
articles = await Article.objects.all()
return render_template("index.html", {"articles": articles})
Working with the ORM
# Creating a record
article = await Article.objects.create(title="Hello World", content="This is a test article.")
# Fetching all records
articles = await Article.objects.all()
# Filtering records
published_articles = await Article.objects.filter(published_at__isnull=False)
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cotlette-0.0.22.tar.gz.
File metadata
- Download URL: cotlette-0.0.22.tar.gz
- Upload date:
- Size: 36.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95d30f9d2fee81f939ccd30e0ebfb142c2eca518582ae24b1068c33bede20402
|
|
| MD5 |
0688d15a97870fd4940a7eac7a4c40b5
|
|
| BLAKE2b-256 |
281b6a54c45edfc3c99509f44de24a28b65d61e919b40de27bc82e4ff5474df8
|
File details
Details for the file cotlette-0.0.22-py3-none-any.whl.
File metadata
- Download URL: cotlette-0.0.22-py3-none-any.whl
- Upload date:
- Size: 36.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf4bc5a3e04dc17e87cd680fa936cc25b879281511d8c44b17671412ebe7c06c
|
|
| MD5 |
91a20ba4cdbb0eef1bfb27ba1206270a
|
|
| BLAKE2b-256 |
c6a2adcbebd9cd626c2892a0f2d6bc8f76ccd2e06bc5eb3a0a8c2f283effce0a
|