Tony D
Tony D

Reputation: 55

How to create a WTF form and flask that returns a value after doing calculations?

Trying to create a way to do calculations from using WTFforms for example that returns the addition after I enter two values

How do I take two values in a form and do calculations and return a value? Thanks

Please see code

main

from flask import Flask, render_template

from flask_wtf import Form 
from wtforms import TextField, PasswordField
from wtforms.validators import InputRequired
from bs4 import BeautifulSoup as soup
import urllib.request
import pandas as pd
import pandas_datareader as pdr
from pandas import ExcelWriter



app = Flask(__name__)
app.config['SECRET_KEY'] = 'DontTellAnyone'

class LoginForm(Form):
    TextField = TextField('Stock', validators=[InputRequired()])
    password = PasswordField('password', validators=[InputRequired()])

@app.route('/', methods=['GET', 'POST'])
def index():
    form = LoginForm()
    list = ['TextField']
    list_value = list[0]
    if form.validate_on_submit():
     
        a = print ('a2')
        #return a
    return render_template('index.html', form=form)


if __name__ == '__main__':
    app.run(debug=True)


#index.html

    
{% from "_formhelpers.html" import render_field %}
<html>
<head>
<title>WTForms</title>
</head>
<body>
    <form method="POST" action="/">
       <dl>
        {{ form.csrf_token }}
        {{ render_field(form.TextField) }}
        {{ render_field(form.password) }}
        <input type="submit" value="Earnings">
        </dl>
    </form>
</body>
</html>

Upvotes: 2

Views: 888

Answers (1)

SuperShoot
SuperShoot

Reputation: 10871

You can define a method on a Form that can access its own attributes, just as you can any object in Python.

E.g,:

from wtforms import Form, IntegerField


class MyForm(Form):
    a = IntegerField('A')
    b = IntegerField('B')

    def a_plus_b(self):
        return self.a.data + self.b.data


if __name__ == "__main__":
    form = MyForm(a=1, b=2)
    print(form.a_plus_b())  # 3

Upvotes: 1

Related Questions