Skip to content

Questions & Answers

The following collection of Questions and Answers should make you more efficient in using the framework!

Create a simple Get route

from tina4_python.Router import get

@get("/route/name")
async def get_route(request, response):
    return response("Route")

Redirect

from tina4_python.Router import get

@get("/route/name")
async def get_route(request, response):
    return response.redirect("/login")

Create a simple Post route

from tina4_python.Router import post

@post("/route/name")
async def post_route(request, response):
    return response("Route")

Render a Jinja2/Twig template

from tina4_python.Router import get
from tina4_python.Template import Template

@get("/render/template")
async def get_render_template(request, response):

    html = Template.render_twig_template("template.twig", data={}) 
    return response(html)

Annotate routes for OpenAPI

from tina4_python.Router import post
from tina4_python.Swagger import  description, summary, example, tags, secure
@post("/api/{name}")
@description("Some description")
@summary("Some summary")
@example({"id": 1, "name": "Test"})
@tags(["user", "admin"])
@secure()
async def post_route(request, response): 

    return response("OK")

How do I get hot code reloading

Make sure jurigged is installed as a dev dependency in your project

poetry add jurigged --group dev

How do I export the Poetry packages to requirements.txt

poetry add poetry-plugin-export
poetry export -f requirements.txt --output requirements.txt

How do I run Tina4 under hypercorn, uvicorn or other similar webserver

app.py
# change the import
from tina4_python import app
pip install hypercorn
hypercorn app:app

or 

poetry add hypercorn
poetry run hypercorn app:app

How do implement logging in my application

from tina4_python import Debug

Debug.info("This is information")
Debug.debug("This is debugging")
Debug.error("This is an error")
Debug.warning("This is a warning")

How do I get a fresh formToken for my form

{{  ("SomeValue"~RANDOM()) | formToken }}

How do I manipulate the DatabaseResult set with a method/ function filter

def change_me(record):
    record["value"] = "Something Else"
    return record

result = dba.fetch("select * from users")
print (result.to_list(change_me))