flask里的响应和request以及发送文件

关于响应,flask中最简单的响应是字符串。

@app.route('/index>')
def index():
    return 'index'

但是实际上我们常常需要返回json数据,flask中提供了相关的方法:

from flask import jsonify
@app.route('/index/')
def index():
    data = {
        'name' :'ww'
    }
    data = jsonify(data)
    return data

还有一种更简单的写法

@app.route('/index/')
def index():
    return jsonify(name='ww')

关于request,flask与django有所不同,在django中需要自己设置参数承接数据,flask由框架提供。

from flask import request

request中提供了大量的方法

@app.route('/index/',methods=['GET','POST'])
def index():
     # print(request)
        # print(request.url)#请求路径
        # print(request.method)#请求方法
        # print(request.args)
        # print(request.data)#文件(图片等)数据(二进制类型)
        # print(request.headers)#请求头
       # print(request.form)#表单数据
        # print(request.files)  # 文件(类字典类型)
        return  'index'

接下来尝试接收前端传来的文件并保存。
这里是通过键值结构从前端传递了一个图片,键名是‘file’,用save()方法保存。

@app.route('/index/',methods=['GET','POST'])
def index():
    data = request.files.get('file')
    data.save('./static/a.png')
    return 'index'

也可以这样接收数据并保存

@app.route('/index/',methods=['GET','POST'])
def index():
	data = request.data 
    with open('./static/put.png','wb+') as f:
       f.write(data)


    return 'index'

在这里插入图片描述
图片被保存在static文件夹里。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,可以为您详细讲解一下如何在request封装中添加请求拦截和响应拦截。 首先,需要使用axios来封装请求。axios是一个基于Promise的HTTP库,可以用于浏览器和Node.js。在使用axios时,可以通过创建axios实例来对请求进行拦截和响应拦截。 以下是一个示例代码,展示如何在请求封装中添加请求拦截和响应拦截: ```javascript import axios from 'axios'; const instance = axios.create({ baseURL: 'http://api.example.com', timeout: 1000, headers: {'X-Custom-Header': 'foobar'} }); // 添加请求拦截器 instance.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 instance.interceptors.response.use(function (response) { // 对响应数据做些什么 return response; }, function (error) { // 对响应错误做些什么 return Promise.reject(error); }); export default instance; ``` 在这个示例中,我们创建了一个axios实例,并使用instance.interceptors.request.use()方法来添加请求拦截器,使用instance.interceptors.response.use()方法来添加响应拦截器。在请求拦截器中,可以对请求进行一些处理,例如添加请求头信息、验证用户身份等。在响应拦截器中,可以对响应进行一些处理,例如处理错误信息、统一格式化响应数据等。 值得注意的是,如果需要在多个请求中使用相同的拦截器,可以将拦截器封装成一个函数或者一个模块,然后在需要使用的地方引入。这样可以提高代码的复用性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值