如何在flask中构建get-form post



好的,所以我是新的flask,并想知道我将使用什么对象或工具来做到这一点。我想创建一个表单,用户输入一些文本,点击提交按钮,然后他们提交的文本被绑定为一个python字符串,并在其上运行一个函数,然后该文本被发布回他们正在查看的网页与该函数的返回值。下面是一个例子:

html表单:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action = "/" method="get">
    <input type="text" name="mail" size="25">
    <input type="submit" value="Submit">
</form>
<textarea cols="50" rows="4" name="result"></textarea>
</body>
</html>

我认为url函数应该是这样的

@app.route('/', methods=['GET', 'POST'])
    def form():
         if request.method == 'GET':
             input_text = request.data #step to bind form text to python string
              new_text = textfunction(input_text) #running the function on the retrieved test.
              return (new_text) # no idea if this is write, but returns text after modification.

设置这个的最好方法是什么?把一个变量作为输入html的值是正确的吗?需要一些帮助。

基本上,你想做的是在模板中有一个块,只有当变量有一个值集时才包含它。请看下面的例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action = "/" method="get">
    <input type="text" name="mail" size="25">
    <input type="submit" value="Submit">
</form>
{% if result %}
<textarea cols="50" rows="4" name="result">{{ result }}</textarea>
{% endif %}
</body>
</html>

然后在python代码中

@app.route('/', methods=['GET', 'POST'])
def index(result=None):
    if request.args.get('mail', None):
        result = process_text(request.args['mail'])
    return render_template('index.html', result=result)

def process_text(text):
    return "FOO" + text

最新更新