Python Flask从HTML选择表单获取项目

2024-05-18 13:58:06 发布

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

我很难从显示的HTML表单中获取任何内容

我总是得到"ValueError: View function did not return a response"

有人能帮我吗?我已经试过了请求.get我可以在网上找到。另外,如果我指定我的表单应该使用post,它将使用get anyway-有人知道这是为什么吗?在

我刚接触烧瓶,所以原谅我的无知!在

提前谢谢。在

python文件(routes.py)

from flask import Flask, render_template, request
import os
app = Flask(__name__)     
musicpath = os.listdir(r"C:\Users\Oscar\Music\iTunes\iTunes Media\Music")
lsize = str(len(musicpath))
looper = len(musicpath)


@app.route('/')
def home():
    return render_template('home.html', lsize=20, looper=looper, musicpath=musicpath)

@app.route('/pop', methods=['POST', 'GET'])
def pop():
    if request.method == "GET":
      text = request.args.get('som')
      return text
      #Have tried every variation of request.get

@app.route('/about')
def about():
    name = "Hello!"
    return render_template('about.html', name=name)



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

html文件(主页.html)

^{pr2}$

Tags: 文件nameapp表单getreturnrequestdef
3条回答

你没有指定表单的方法,你必须这么做!例如,使用这个<form method="POST action"/pop">

问题是HTML表单没有名称。 request.args.get("som")需要一个名为"som"的HTML表单输入

<select name="som" id="som" size="20">

只需更改行并添加名称即可。表单对id属性不感兴趣。在

您的表单操作是/pop。这意味着如果您提交表单,它将对地址POST执行一个/pop请求。您的代码只返回GET请求的值,因此Flask抱怨您没有返回任何内容。编写一些代码来处理POST请求并返回文本或呈现的模板。在

顺便说一句,在GET的代码中,您引用了request.args.get('som');这给了您请求参数(即在URL中),而不是来自表单。som的格式为,因此不能以这种方式引用它。在

相关问题 更多 >

    热门问题