proper_forms


Nameproper_forms JSON
Version 0.8 PyPI version JSON
download
home_pagehttps://proper-forms.scaletti.dev/
SummaryA proper flexible Python form library
upload_time2024-01-18 15:29:10
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/36/84/9cde148c9615f2b610ce1b3e814b53208c9d666466007eaab6107d292b44/proper_forms-0.8.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.8",
    "project_urls": {
        "Homepage": "https://proper-forms.scaletti.dev/",
        "Repository": "https://github.com/jpsca/proper-forms"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2bfbd87e64f242ef28382b2b4bbcc619d2b8c37d12f9d5560019eff20c03d129",
                "md5": "96fee5cd0004a330f0ae7ddbceb1b041",
                "sha256": "706ada401847613b5dac9a44a1bf22afa8e01a44b3883f1007dab2d894daabca"
            },
            "downloads": -1,
            "filename": "proper_forms-0.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "96fee5cd0004a330f0ae7ddbceb1b041",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 25905,
            "upload_time": "2024-01-18T15:29:09",
            "upload_time_iso_8601": "2024-01-18T15:29:09.139132Z",
            "url": "https://files.pythonhosted.org/packages/2b/fb/d87e64f242ef28382b2b4bbcc619d2b8c37d12f9d5560019eff20c03d129/proper_forms-0.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "36849cde148c9615f2b610ce1b3e814b53208c9d666466007eaab6107d292b44",
                "md5": "e481f1e3aee52085d453db075cd96943",
                "sha256": "7ca7a06aec0268ef53d15f04f40f60923c15baf8cd2136f42dde871c71dcfe3f"
            },
            "downloads": -1,
            "filename": "proper_forms-0.8.tar.gz",
            "has_sig": false,
            "md5_digest": "e481f1e3aee52085d453db075cd96943",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 18145,
            "upload_time": "2024-01-18T15:29:10",
            "upload_time_iso_8601": "2024-01-18T15:29:10.322818Z",
            "url": "https://files.pythonhosted.org/packages/36/84/9cde148c9615f2b610ce1b3e814b53208c9d666466007eaab6107d292b44/proper_forms-0.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-18 15:29:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jpsca",
    "github_project": "proper-forms",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "proper_forms"
}
        
Elapsed time: 0.16583s