通过表单自动产生get请求的参数
相关代码如下:
import flask
app = flask.Flask(__name__)
@app.route('/')
def login():
html = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flask表单实现get数据拼接</title>
</head>
<body>
<form action="#" method="get">
user <input type="text" name="user"/> </br>
sex <input type="radio" name="sex" value="male"> 男
<input type="radio" name = "sex" value="female"> 女
</br>
<input type="submit" value="提交">
</form>
</body>
</html>
'''
return html
if __name__ == '__main__':
app.run(debug=True)
执行结果如下:
提交后数据在服务端接收到的数据
key是:user、sex
对应的value是:姓名、male/female
还可以通过flask.request.values.get(‘key’,‘’)来获取对应的数据,执行结果如下
form表单实现POST请求的自动提交
post请求和get请求的区别是在method方法上把get改成post即可
关于路由方式需要调整的说明
import flask
app = flask.Flask(__name__)
# Method Not Allowed
# The method is not allowed for the requested URL.
# 报错提示是说路由不允许提交get请求,需要调整路由,加上method,需要把get和post都加上,
# 因为第一次没有点击表单时候是get请求,提交的时候才是post请求,所以需要两者都支持
@app.route('/', methods=['GET', 'POST'])
def login():
html = '''
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>表单实现get数据拼接</title>
</head>
<body>
<form action="#" method="post">
user <input type="text" name="user"/> <br />
sex <input type="radio" name="sex" value="male"/> 男
<input type="radio" name="sex" value="female"/> 女
<br />
<input type="submit" value="提交">
</form>
</body>
</html>
'''
user = flask.request.values.get("user",'')
sex = flask.request.values.get("sex",'')
return html +f'<div>您输入的数据为:{user = }, {sex = }</div>'
if __name__ == '__main__':
app.run(debug=True)
调整后重启测试
这时候可以通过检查通过“载荷/负载”这里看到传输的参数,这时候在请求路径里面已经看不到参数了,相对于get请求来说更加安全一点儿