如何在Flask中获取占位符的输入

问题描述 投票:0回答:1

这是我在 Flask 中用 Python 编写的代码的一部分

 ...output += '''<div class = recsettings> 
              Recording  
            <div class = recduration>
            change recording duration here 
            <form method ='POST'>
            <input placeholder = 'duration' name='duration' id ='duration'>   <---HERE
            <button type ='submit' action ='/duration'>Submit</button>
            </form>...'''

我现在想在另一种方法中单击提交时获取占位符的输入。重定向到 /duration 显然不起作用,也不知道如何修复它

@app.route('/duration', methods=['GET', 'POST'])
def duration():
tst = request.form.get("placeholder"); <---- Something like this 
print (tst)
return redirect(url_for('settings'))

必须没有php

python html flask placeholder
1个回答
0
投票

我能够使用 Flask-WTF 表单访问占位符值。有一个名为

render_kw
的属性保存占位符值。


@app.route('/formz')
def formz():
    form = MyForm()
    print(form.some_field.render_kw) # <=== property with the placeholder value
    return render_template('formz.html', form=form)

这里是更多上下文的表单类

from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired

class MyForm(FlaskForm):
    name = StringField('name', validators=[DataRequired()])
    some_field = StringField('abc', render_kw={"placeholder": "testomondo"})

以及加载路线时的控制台输出

$ python -m flask --app run run
 * Serving Flask app 'run'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
{'placeholder': 'testomondo'}
127.0.0.1 - - [05/Mar/2024 15:25:49] "GET /formz HTTP/1.1" 200 -

因此,即使您要查看请求对象,也只需深入到表单并访问 render_kw 属性!希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.