如何让iexfianacestock从表单数据中获取输入?

2024-10-03 15:24:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从IEXFiance得到股票价格。当我尝试运行这个时,我得到了ValueError: Please input a symbol or list of symbols。我如何使s=Stock()从表单中获取输入?我试着把输入改成一个字符串,但是没有成功,因为它已经是一个字符串了。请帮忙!!你知道吗

class InvestmentForm(Form):
    stockSymbol = StringField('Stock Symbol', validators=[InputRequired(), Length(min=2, max=5 ,message='Please Enter Correct 
    symbol')])
    allotment = FloatField('Allotment', validators=[InputRequired()])
    finalSharePrice = FloatField('Final Share Price', validators=[InputRequired()])
    sellCommision = FloatField('Sell Commision',validators=[InputRequired()])
    initialSharePrice = FloatField('Initial Share Price', validators=[InputRequired()])
    buyCommission = FloatField('Buy Commission', validators=[InputRequired()])


@app.route("/",methods=['GET','POST'])
def index():
    form = InvestmentForm()
    userInput = form.stockSymbol.data
    s = Stock(userInput)
    print(s.get_price())
    return render_template('home.html',form=form)

Tags: 字符串formsharestocksymbolpricevalidatorsplease
2条回答

我认为错误的原因是,当用户输入不可用时,您试图在GET请求中提取form.stockSymbol.data。尝试更改代码,以便区分GETPOST,如下所示:

from flask import request
@app.route("/",methods=['GET','POST'])
def index():
    form=investmentform()

    if request.method == 'POST':
        userInput = form.stockSymbol.data
        s = Stock(userInput)
        print(s.get_price())

    return render_template('home.html',form=form)

您必须提交表单输入数据,在InvestmentForm中添加一个submit = SubmitField()。确保在form = InvestmentForm(request.form)中传递request.form,或者只使用Flask-WTF。你知道吗

class InvestmentForm(Form):
    submit = SubmitField()

@app.route("/", methods=['GET', 'POST'])
def index():
    form = InvestmentForm(request.form)
    if request.method == 'POST' and form.validate():
        user_input = form.stockSymbol.data
        s = Stock(user_input)
        print(s.get_price())
return render_template('home.html', form=form)

相关问题 更多 >