Skip to main content

Create HTML boilerplate from pydantic models

Project description

Dainty

Dainty is a simple, plug and play extension of pydantic, that allows you to easily create HTML input elements based on your pydantic models.

Installation

uv add dainty

Usage

from typing import Literal

from pydantic import Field

from dainty import DaintyModel
from dainty.dainty import DaintyForm


class MyModel(DaintyModel):
    name: str
    age: int = Field(ge=20, lt=40)
    gender: Literal["Male", "Female", "Non Binary", "Other"]

    dainty_form = DaintyForm(target_url="/submit")


print(MyModel.to_html(form=True))

This will generate the following HTML:

<form>
  <label for="name">Name: </label>
  <input type="text" name="name" id="name" value="" required />
  <br /><br />
  <label for="age">Age: </label>
  <input
    type="number"
    name="age"
    id="age"
    value=""
    step="1"
    min="20"
    max="39"
    required
  />
  <br /><br />
  <label for="gender">Gender: </label>
  <select name="gender" id="gender" required>
    <option value="Male">Male</option>
    <option value="Female">Female</option>
    <option value="Non Binary">Non Binary</option>
    <option value="Other">Other</option>
  </select>
  <br /><br />
  <input type="submit" value="Submit" method="post" formaction="/submit" />
</form>

TODO:

  • Add support for more field types
  • Move inputs inside labels for better clickability
  • More customization options for DaintyForm
  • More html boilerplate elements, such as div containers

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

dainty-0.4.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dainty-0.4.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file dainty-0.4.0.tar.gz.

File metadata

  • Download URL: dainty-0.4.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for dainty-0.4.0.tar.gz
Algorithm Hash digest
SHA256 aba0bb6ba2edd35111681519d9a2d069340dc037eb6bb6d841057f101841e669
MD5 131268748c558a2ec763cb531b030ecd
BLAKE2b-256 727757c40f5807a2126e579863dc70d5f717a5de8d6ac6511ac819e7a13f3cb8

See more details on using hashes here.

File details

Details for the file dainty-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: dainty-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for dainty-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5d8d4091520b4d8498bf5026625406395928413c339b51dad4f0b343528a808
MD5 ef3c646ee4c1bcb74eae4ec877a22011
BLAKE2b-256 ad2f844a64a5d44759aef8cba365d7ec4824ae71606832b93e7cadd082415b00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page