如何在 Flask 中构建一个 get-form post
How to build a get-form post in flask
好的,所以我是 Flask 的新手,想知道我会使用什么对象或工具来做到这一点。我想创建一个表单,用户在其中输入一些文本,单击提交按钮,然后他们提交的文本被绑定为 python 字符串,并在其上具有一个函数 运行,然后然后,文本会通过该函数的 return 值回传到他们正在查看的网页上。这是一个例子:
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
好的,所以我是 Flask 的新手,想知道我会使用什么对象或工具来做到这一点。我想创建一个表单,用户在其中输入一些文本,单击提交按钮,然后他们提交的文本被绑定为 python 字符串,并在其上具有一个函数 运行,然后然后,文本会通过该函数的 return 值回传到他们正在查看的网页上。这是一个例子:
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