江宁网站建设要多少钱,上海工商网上公示系统,群晖可以做网站吗,辽宁城乡建设集团网站Python Flask request中常见存储参数的介绍
首先从flask模块中导入请求对象#xff1a;
from flask import requestrequest.form
通过method属性可以操作当前请求方法#xff0c;通过使用form属性处理表单数据#xff08;本质也是得到一个字典#xff0c;如果传输的是字…Python Flask request中常见存储参数的介绍
首先从flask模块中导入请求对象
from flask import requestrequest.form
通过method属性可以操作当前请求方法通过使用form属性处理表单数据本质也是得到一个字典如果传输的是字典也可以用form默认的数据类型时ImmutableMultiDict可以通过parameter_storage_lass改变数据类型。一个简单的例子
app.route(/predict, methods[POST, GET])
def predict():if request.method POST:img_url request.form[IMG_URL]#或者通过get获取img_url request.form.get(IMG_URL)if img_url is None:return jsonify({error:No data was got}), 400return img_url
当form属性中不存在这个key时会引发一个KeyError会显示一个HTTP400 Bad Request的错误页面多数情况下可以不用处理这个问题。
request.args
要操作URL如keyvalue中提交的参数可以使用args属性。默认的数据类型也是ImmutableMultiDict可以通过parameter_storage_class改变数据类型。参数获取和form相同
url http://170.0.0.1:5000/pre?id1namezane
#返回值是{id : 1, name : zane}
#获取某个具体参数
id request.args[id]
id request.args.get(id)request.values
values结合form和args默认类型是CombinedMultiDict可以用values替代form和args。
request.data
data返回的是bytes类型数据通常传递base64编码的图像数据会用到data。
base64data request.data
data base.b64decode(base64data)
data np.fromstring(data, np.uint8)
img cv2.imdecode(data, cv2.IMREAD_COLOR)request.json
当在Header中设置 Content-Type:application/json获取的数据降被转换成json数据不能使用data进行获取只能用json获取。
request.files
files用于处理文件上传前提需要设置HTML表单中enctypemultipart/from-data属性。已上传的文件被存储在内存活文件系统的临时位置通过files属性来访问上传文件每个上传文件都存储在字典属性中该属性和Python file对象一样多出一个save()方法。
def allowed_file(filename):return . in filename and \filename.rsplit(., 1)[1].lower() in ALLOWED_EXTENSIONSapp.route(/, methods[GET, POST])
def upload_file():if request.method POST:# check if the post request has the file partif file not in request.files:flash(No file part)return redirect(request.url)file request.files[file]# if user does not select file, browser also# submit an empty part without filenameif file.filename :flash(No selected file)return redirect(request.url)if file and allowed_file(file.filename):filename secure_filename(file.filename)file.save(os.path.join(app.config[UPLOAD_FOLDER], filename))return redirect(url_for(uploaded_file,filenamefilename))return !doctype htmltitleUpload new File/titleh1Upload new File/h1form methodpost enctypemultipart/form-datainput typefile namefileinput typesubmit valueUpload/form在使用文件上传的时候也可以通过Flask-Uploads扩展来实现这个扩展实现了完整的上传机制还具有白名单、黑名单等功能。