Create WTF-Form from your pony database entity
Project description
Pony-WTF is an integration library for Ponyorm and WTF-Forms.
Installation
pip install pony-wtf
Usage
# imports from pony-wtf
from pony_wtf import model_form
from pony_wtf.utils import get_attrs_dict
# declare database entities
class User(db.Entity):
id = PrimaryKey(int, auto=True)
email = Required(str, unique=True)
age = Optional(int)
form_cls = model_form(User, )
form = form_cls()
def get_form_values(entity, form_data):
""" Get form values and return them as dict """
d = {}
adict = get_attrs_dict(entity)
for k in adict:
if k in form_data:
d[k] = form_data.get(k)
return d
@app.route('/create_user', methods=['GET', 'POST'])
def create_user():
form_cls = model_form(User)
form = form_cls() # instaniatte the class
if request.method == 'POST' and form.validate_on_submit():
data = get_form_values(User, form.data)
with db_session:
User(**data)
flash("User Created", "success")
return redirect(url_for("index"))
return render_template('create_user.html', form=form)
You can render the form as you prefer in the jinjaHTML. Ex: {# Use Flask-WTF and Flask-Bootstrap #} {{ wtf.quick_form(form) }}
Requirements
pony pony_wtf Flask_WTF WTForms
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
[MIT]
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
pony_wtf-0.0.1.post7.tar.gz
(12.2 kB
view details)
File details
Details for the file pony_wtf-0.0.1.post7.tar.gz.
File metadata
- Download URL: pony_wtf-0.0.1.post7.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5937aa5ef81472a03850db196b04313953c717a69ad60fad8a9e21a4e1db558d
|
|
| MD5 |
087640978f9feb4d644d8b087c7deb3e
|
|
| BLAKE2b-256 |
d6b8a1e95cd1421d382227a5aa03451c3ab757da0f30aa89721c83211221b2bc
|