this package can parse a list and give a html string
Project description
checkbox-parser
A python module that takes a list object and transforms it to a HTML fieldsets with a question and its answers as checkboxs that can be rendered in flask. The purpose is that the list that is consumed could reside in a noSQL database as a document(MongoDB, Firestore, DynamoDB)
How it works?
first, you need a list in this structured way
[
{
'id_question': 'first',
'question': 'What is the most important reason for choosing a gym?',
'answers': ['The price', 'That it has personalized attention', 'That it has the best facilities', 'That it has a very long schedule'],
'position': 1
},
{
'id_question': 'third',
'question': 'What pay period is the best for you to go to a gym?',
'answers': ['Annual', 'Bimonthly', 'Monthly'],
'position': 3
},
{
'id_question': 'second',
'question': 'What motivates you the most to join a gym?',
'answers': ['Physical appearance', 'Physical condition', 'Know another social circle'],
'position': 2
}
]
Note:
- make sure that the id_question value does not repeat itself, this is was intended to map the question with the respectives anwsers
Then you just create a html_parser object. This object just needs the list for work In order to get the html you can use the get_html method, this will return the html as string
from checkbox_parser import html_parser
...
parser = html_parser(data)
parser.get_html()
Use with flask
This is a little snippet of how you can use it with flask
from flask import Flask, render_template
from checkbox_parser import html_parser
app=Flask(__name__)
@app.route("/")
def survey():
data = [
{
'id_question': 'first',
'question': 'What is the most important reason for choosing a gym?',
'answers': ['The price', 'That it has personalized attention', 'That it has the best facilities', 'That it has a very long schedule'],
'position': 1
},
{
'id_question': 'third',
'question': 'What pay period is the best for you to go to a gym?',
'answers': ['Annual', 'Bimonthly', 'Monthly'],
'position': 3
},
{
'id_question': 'second',
'question': 'What motivates you the most to join a gym?',
'answers': ['Physical appearance', 'Physical condition', 'Know another social circle'],
'position': 2
}
]
parser = html_parser(data)
html = parser.get_html()
return render_template("your_html_template.html", html=html)
if __name__ == "__main__":
app.run()
Note:
- I recommend that in your ninja template use the decode method for the html object, in case this prevents bad characters to be rendered.
<form action="/endpoint_get" method="GET" name="myForm">
{{ html.decode('utf-8') | safe }}
<div class="container">
<div class="center">
<button id="submit">submit</button>
</div>
</div>
</form>
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
Built Distribution
File details
Details for the file checkbox_parser-0.0.1.tar.gz
.
File metadata
- Download URL: checkbox_parser-0.0.1.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b8c608bd8585d55705650347ea93f50c6c3879132c86eeb2bb3e9f4aeefdf2c |
|
MD5 | 0f4218d55451749cf2b92e5c5e188594 |
|
BLAKE2b-256 | b6bbd2002b68595d0866b55f0d083b5d2e603be14b1e5cae284479df98b570b9 |
File details
Details for the file checkbox_parser-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: checkbox_parser-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbdf8155985984264d111fb6730ba2e5edd4c06f8597e1a19518b73a77760c9b |
|
MD5 | a7a7c86011abe7546f3db1ca92b20e05 |
|
BLAKE2b-256 | 9ce764bdbf51b49cd46a7f49299efebe7b87acb80c5e125e0ba725b0a22002e2 |