Open sardine2 opened 7 years ago
获取请求数据的方法有几种:
request.args.get('key') # 获取URL中的参数值
To access parameters submitted in the URL (?key=value) you can use the args attribute: searchword = request.args.get('key', '')
request.form['key'] # 获取表单中填写的值 Flask通过request.form['name']来获取表单的内容。
request.get_data() # 获取
我的理解: GET 用 request.args.get('key') 。因为get 在url直接发送参数。 POST 用 request.form['key']。因为post 发送表单,获取表单中的值。
if request.method == 'POST':
if 'query' in request.form.keys():
city_name = request.form['city_name']
weather = query_weather(city_name)
elif 'history' in request.form.keys(): #
his_info = show_history()
return render_template('index.html',info=his_info)
elif 'help' in request.form.keys(): #
help_info = show_help()
return render_template('index.html',info=help_info)
return render_template('index.html',info=weather)
request The current request method is available by using the method attribute. To access form data (data transmitted in a POST or PUT request) you can use the form attribute.
HTTP请求的流程:
步骤1:浏览器首先向服务器发送HTTP请求,请求包括:
方法:GET还是POST,GET仅请求资源,POST会附带用户数据; 路径:/full/url/path;
域名:由Host头指定:Host: www.xxxccc.cn
以及其他相关的Header;
如果是POST,那么请求还包括一个Body,包含用户数据。
步骤2:服务器向浏览器返回HTTP响应,响应包括:
响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;
响应类型:由Content-Type指定;
以及其他相关的Header;
通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。
步骤3:如果浏览器还需要继续向服务器请求其他资源,比如图片,就再次发出HTTP请求,重复步骤1、2。