首页 > 解决方案 > 如何在不在 Flask 中定义新路由的情况下获取单选按钮值?

问题描述

我有以下 HTML 代码:

<form action="/Team" method="post">
    <label>Choose team:</label><br>
    <input type="radio" id="FirstTeam" name="HattrickTeams" value="{{user_data['team 1 id']}}" checked>
    <label for="FirstTeam">{{user_data['team 1 name']}}</label><br>
    <input type="radio" id="SecondTeam" name="HattrickTeams" value="{{user_data['team 2 id']}}">
    <label for="SecondTeam">{{user_data['team 2 name']}}</label><br>
    <input type="radio" id="ThirdTeam" name="HattrickTeams" value="{{user_data['team 3 id']}}">
    <label for="ThirdTeam">{{user_data['team 3 name']}}</label><br>
    <input type="submit" id="SubmitButton" value="OK">
</form>

我需要获取所选单选按钮的值。我使用以下代码做到了这一点:

team_id = request.form['HattrickTeams']

问题是我不想使用路线,正如我在其他类似问题中看到的那样。我想team_id用于后端目的。另外,用作路由装饰器的函数需要返回一个值,我不希望这样,因为没有。

如何在不使用路由装饰器的情况下获取单选按钮的值?

标签: pythonhtmlflaskpython-decorators

解决方案


由于您已经有routefor '/Team',您可以在那里检查请求是否是POST处理表单数据的请求,例如

@app.route('/Team', methods=['GET', 'POST'])
def register():
    if flask.request.method == 'POST':
        data = flask.request.values.get('data') # retrieve data from post request
        # process data, store in database, etc.
    else:
        # render form without data, etc.

这样您就不必添加额外的路线。


推荐阅读