Tina4Python - This is not another framework for Python
Project description
Tina4 Python — This is not a framework
Laravel joy. Python speed. 10× less code.
Quickstart
pip install tina4_python
tina4 init my_project
cd my_project
python app.py
You've just built your first Tina4 app — zero configuration, zero classes, zero boilerplate!
Features
- Full ASGI compliance, use any ASGI compliant webserver
- Full async support out of the box
- Built-in JWT and Session handling
- Automatic Swagger docs at
/swagger - Instant CRUD interfaces with one line:
result.to_crud(request) - Built-in Twig templating, migrations, WebSockets, authentication and middleware
- Works with SQLite, PostgreSQL, MySQL, MariaDB, MSSQL, Firebird
- Hot reload in development (
uv run python -m jurigged app.py)
Install
pip install tina4-python
Routing
Here are some basic GET routes
# .src/__init__.py
from tina4_python import get
# simple get route
@get("/hello")
async def get_hello(request, response):
return response("Hello, Tina4 Python!")
# simple get route with inline params
@get("/hello/{world}")
async def get_hello_world(world, request, response):
return response(f"Hello, {world} ")
# simple route responding with json
@get("/hello/json")
async def get_hello_json(world, request, response):
cars = [{"brand": "BMW"}, {"brand": "Toyota"}]
return response(cars)
# respond with a file
@get("/hello/{filename}")
async def get_hello_file(filename, request, response):
return response.file(filename, './src/public')
# respond with a redirection to another location
@get("/hello/redirect")
async def get_hello_redirect(request, response):
return response.redirect("/hello/world")
@get("/hello/template")
async def get_hello_template(request, response):
# renders any template in .src/templates
return response.render("index.twig", {"data": request.params})
Further Documentation
Community
License
MIT © 2007 – 2025 Tina4 Stack
https://opensource.org/licenses/MIT
Testing
uv run pytest --verbose
Tina4 – The framework that keeps out of the way of your coding.
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 tina4_python-0.2.170.tar.gz.
File metadata
- Download URL: tina4_python-0.2.170.tar.gz
- Upload date:
- Size: 336.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aebc7655364bf007325d91718dcd6d029b64fbc18304e4bcf972fc5d596c96e5
|
|
| MD5 |
f203e0d1f24d9f214ff1cc2b3b038d70
|
|
| BLAKE2b-256 |
bd209c01f97dcd8b46a08145f96f4743b18f7c241e4f343ab151369ceb58ca80
|
File details
Details for the file tina4_python-0.2.170-py3-none-any.whl.
File metadata
- Download URL: tina4_python-0.2.170-py3-none-any.whl
- Upload date:
- Size: 356.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f5ba8d52b34b2c408b0ca8d200fed46fd85a2ba1eb98af4ba8975fe3ccaeec6
|
|
| MD5 |
467e2346b36f4640180fb48d1e6fe826
|
|
| BLAKE2b-256 |
010c986bba0d271b871d8d8dacd48cf0d7100afaf3b631a1e5e843326be90f53
|