【问题标题】:Gathering User Input Data in Flask在 Flask 中收集用户输入数据
【发布时间】:2020-07-24 02:01:17
【问题描述】:

我正在开发一个烧瓶应用程序,该应用程序将从表单中获取用户输入并将其传递给 Todosit API 以生成任务。我已经能够验证并验证代码的 API 版本是否正常工作,我现在唯一的问题似乎是从前端(jinja 模板)获取数据,作为变量传递给 Todoist API POST 调用。

这是我的路线 Python 代码:

@app.route('/', methods=['GET', 'POST'])
def home():
    if request.form["submit"] == "submit":
        task = request.form["task"]
        due_date = request.form["dueDate"]
        
        requests.post(
        "https://api.todoist.com/rest/v1/tasks",
        data=json.dumps({
            "content": task,
            "label_ids": [2154915513],
            "due_string": due_date,
            "due_lang": "en",
            "priority": 1
        }),
        headers={
            "Content-Type": "application/json",
            "X-Request-Id": str(uuid.uuid4()),
            "Authorization": f"Bearer {API_KEY}"
        }).json()

这是 HTML 表单代码:

<form>
        <label for="task">Enter Task:</label><br>
        <input type="text" id="task" name="task"><br>
        <label for="due_date">Enter Due Date (Leave Blank if None):</label><br>
        <input type="text" id="due_date" name="due_date">
        <input type="submit" value="Submit">
    </form>

当我运行它并添加任务和截止日期时,结果没有正确传递到变量 taskdue date 中。有人对将前端变量传递给 Flask 路由进行处理有什么建议吗?谢谢!

【问题讨论】:

    标签: python api flask jinja2


    【解决方案1】:

    为表单添加标签:action="{{ url_for('handle_data') }}" method="post" 对于dueDate,使用右键:request.form["due_date"] 希望对您有所帮助

    【讨论】:

    • 感谢迈克的快速回复。只是为了确保我理解正确,url_for('handle_data') 应该导致在 application.py 中为 handle_data 设置路由,对吗?
    • 是的。你可以看到更多信息here
    猜你喜欢
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多