proper-forms


Nameproper-forms JSON
Version 0.7 PyPI version JSON
download
home_pagehttps://proper-forms.scaletti.dev/
SummaryA proper flexible Python form library
upload_time2023-01-25 03:28:08
maintainer
docs_urlNone
authorJuan-Pablo Scaletti
requires_python>=3.9,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Proper Forms](header.png)

Proper Forms is a flexible form library to make far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Python web application.

**Documentation**: https://proper-forms.scaletti.dev


```bash
pip install proper-forms
```

## How Proper Forms is different

- A field isn't tied to a specific HTML tag, so can be presentend in multiple ways. Even the same form can be used in different contexts and have different widgets and styles on each. A set of options as checkboxes, a select multiple, or a comma-separated input? You got it. A date as a calendar or as three selects? No problem.

- Many commonly used built-in validators, and you can also write simple functions to use as custom ones.

- Any field can accept multiple values; as a list or as a comma-separated text.

- All error messages are customizable. The tone of the messages must be able to change or to be translated.

- Incredible easy to integrate with any ORM (object-relational mapper). Why should you need *another* library to do that?


## Just show me how it looks

```python
from proper_forms import Form, Email, Text


class CommentForm(Form):
    email = Email(required=True, check_dns=True)
    message = Text(
    	LongerThan(5, "Please write a longer message"),
    	required=True
    )


def comment():
    form = CommentForm(request.POST)
    if request.method == "POST" and form.validate():
    	data = form.save()
        ...
    return render_template("comment.html", form=form)

```

            

Raw data

            {
    "_id": null,
    "home_page": "https://proper-forms.scaletti.dev/",
    "name": "proper-forms",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Juan-Pablo Scaletti",
    "author_email": "juanpablo@jpscaletti.com",
    "download_url": "https://files.pythonhosted.org/packages/53/40/35ebe5b38bb598834b8153dd3a06583d6c2ac7fb7650362d19783fb5f9f6/proper_forms-0.7.tar.gz",
    "platform": null,
    "description": "![Proper Forms](header.png)\n\nProper Forms is a flexible form library to make far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Python web application.\n\n**Documentation**: https://proper-forms.scaletti.dev\n\n\n```bash\npip install proper-forms\n```\n\n## How Proper Forms is different\n\n- A field isn't tied to a specific HTML tag, so can be presentend in multiple ways. Even the same form can be used in different contexts and have different widgets and styles on each. A set of options as checkboxes, a select multiple, or a comma-separated input? You got it. A date as a calendar or as three selects? No problem.\n\n- Many commonly used built-in validators, and you can also write simple functions to use as custom ones.\n\n- Any field can accept multiple values; as a list or as a comma-separated text.\n\n- All error messages are customizable. The tone of the messages must be able to change or to be translated.\n\n- Incredible easy to integrate with any ORM (object-relational mapper). Why should you need *another* library to do that?\n\n\n## Just show me how it looks\n\n```python\nfrom proper_forms import Form, Email, Text\n\n\nclass CommentForm(Form):\n    email = Email(required=True, check_dns=True)\n    message = Text(\n    \tLongerThan(5, \"Please write a longer message\"),\n    \trequired=True\n    )\n\n\ndef comment():\n    form = CommentForm(request.POST)\n    if request.method == \"POST\" and form.validate():\n    \tdata = form.save()\n        ...\n    return render_template(\"comment.html\", form=form)\n\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A proper flexible Python form library",
    "version": "0.7",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53020cad1f21b4e69ff0a76f57770080089ff2ee8e70e65d2aa8044f0f084afb",
                "md5": "b335ccbf1d482117d1f53e44c2c6be79",
                "sha256": "b98d94dd1e5ed2e2bac41ae329f104b20e477862341dded0752e4585fc8afb7a"
            },
            "downloads": -1,
            "filename": "proper_forms-0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b335ccbf1d482117d1f53e44c2c6be79",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 25907,
            "upload_time": "2023-01-25T03:28:07",
            "upload_time_iso_8601": "2023-01-25T03:28:07.015004Z",
            "url": "https://files.pythonhosted.org/packages/53/02/0cad1f21b4e69ff0a76f57770080089ff2ee8e70e65d2aa8044f0f084afb/proper_forms-0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "534035ebe5b38bb598834b8153dd3a06583d6c2ac7fb7650362d19783fb5f9f6",
                "md5": "b039110792081460ae4d78a712ea855e",
                "sha256": "1b79c9d90341a216ea584a5ad7bd5ddfcace8496de584f62b25dc27c951bc1ad"
            },
            "downloads": -1,
            "filename": "proper_forms-0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "b039110792081460ae4d78a712ea855e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 18501,
            "upload_time": "2023-01-25T03:28:08",
            "upload_time_iso_8601": "2023-01-25T03:28:08.754588Z",
            "url": "https://files.pythonhosted.org/packages/53/40/35ebe5b38bb598834b8153dd3a06583d6c2ac7fb7650362d19783fb5f9f6/proper_forms-0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-25 03:28:08",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "proper-forms"
}
        
Elapsed time: 0.04101s