flask request 报错:res:<Response [200]>、<Response [405]>

本文介绍了解决Flask框架中常见的请求与响应问题,包括如何正确处理HTTP状态码405错误以及如何解析JSON数据。对于405错误,文章提供了修改请求方式的方法;而对于JSON数据处理,则详细解释了request.get_json()的正确用法。

文章目录

问题 1: res:<Response [200]>

解决

原因:返回结果未解析
可以将返回的内容(响应对象)转为str 类型

    res = requests.get(url_get)
    res = res.text

附:

response = requests.get(url)

# print(response)                     # 响应对象
print(response.text)                  # 响应的是 str
# print(response.content)             # 响应的是 bytes
# print(response.content.decode())    # 解决中文乱码

print(type(response.text))

问题 2:<Response [405]>

flask request 报错:服务端的request.json 返回 None

解决

解决办法:

1、request.json ——>request.get_json() (❌)
2、request.json ——>request.get_json(force=True) (✔️)

首先,.json属性已经被否决,应该使用request.get_json()方法。

通过设置force=True,可以告诉request.get_json()跳过内容类型要求。

另解:
也可以在客户端 requests.post() 的时候,添加一个如下的header

headers = {
    "Content-Type": "application/json;charset=utf8"
}
<template> <div> <h1 class="title">考勤记录汇总</h1> <el-tabs v-model="activeName" type="card"> <el-tab-pane label="table" name="table"> <el-form :inline="true" :model="form" ref="topform"> <el-form-item prop="Month" label="Month:"> <el-select v-model="form.Month" placeholder="请选择" style="width:170px" clearable > <el-option v-for="item in monthOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Department" label="部门:"> <el-select v-model="form.Department" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in DepartmentOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Division" label="科室"> <el-select v-model="form.Division" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in DivisionOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Group" label="组别:"> <el-select v-model="form.Group" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in GroupOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-button type="primary" @click="getHistory('topform')"> 查询 </el-button> <el-form-item style="margin-left: 10px;"> <el-upload :on-success="uploadSuccess" :on-error="uploadError" action="http://10.6.2.130:90/new/js/attendance/uploadattendance.php" ref="upload" multiple > <el-button type="primary">导入</el-button> </el-upload> <!-- <el-button type="primary" @click="importResume">上传简历</el-button> --> </el-form-item> <el-button type="primary" @click="exportToExcel">导出</el-button> </el-form> <div class="alarm-data-table"> <el-table :data="DataTable" style="width: 100%;" border stripe :header-cell-style="{ background: '#004c99', color: '#ffffff' }" ref="ymstable" :height="tableHeight" @sort-change="handleSortChange" > <el-table-column v-for="column in tableColumns" :key="column.prop" :prop="column.prop" :label="column.label" :sortable="column.sortable || true" :width="column.width || null" /> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" > </el-pagination> </div> </el-tab-pane> </el-tabs> </div> </template> 对导入功能进行修改,将上传的文件传到ftp,不在用调用php
11-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值