from flask import Flask from flask import json, make_response, render_template_string, request from flask_wtf import Form from wtforms import IntegerField, SelectField from wtforms.validators import DataRequired template = """
""" app = Flask(__name__) app.config['WTF_CSRF_ENABLED'] = True app.config['SECRET_KEY'] = 'you-will-never-guess' class SelectDevice(Form): deviceAddress = SelectField('device number') selectAmount = IntegerField('amount devices', [DataRequired()], default = 3) def __init__(self, *args, **kwargs): super(SelectDevice, self).__init__(*args, **kwargs) defaultAmount = self.selectAmount.data self.deviceAddress.choices = [('device{}'.format(i), i) for i in range(defaultAmount)] @app.route('/') @app.route('/selectform', methods=['GET']) def select(): form = SelectDevice() return render_template_string(template, form=form) @app.route('/selectform', methods=['POST']) def updateselect(): deviceAmount = int(request.form.get('selectAmount')) choices = [('device{}'.format(i), i) for i in range(deviceAmount)] response = make_response(json.dumps(choices)) response.content_type = 'application/jsons' return response if __name__ == '__main__': app.run()