Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在响应标题中设置多个选项_Python_Flask_Response Headers - Fatal编程技术网

Python 在响应标题中设置多个选项

Python 在响应标题中设置多个选项,python,flask,response-headers,Python,Flask,Response Headers,如何为flask中的标题设置多个选项。例如:我想在缓存控制标题中设置两个选项,一个是最大年龄,另一个是公共/私人。我怎样在烧瓶里做?。目前我已经实现了这个 from flask import Flask, jsonify, abort, request, json, Response app = Flask(__name__) book_list = ['Peaceful Warrior', 'The Monk who sold his ferrari', 'Lord of the Ring

如何为flask中的标题设置多个选项。例如:我想在缓存控制标题中设置两个选项,一个是最大年龄,另一个是公共/私人。我怎样在烧瓶里做?。目前我已经实现了这个

from flask import Flask, jsonify, abort, request, json, Response

app = Flask(__name__)

book_list = ['Peaceful Warrior', 'The Monk who sold his ferrari', 'Lord of the Rings', 'Game of Thrones', 'The True Name', 'The Da Vinci Code',
            'Angels and Demons', 'Fear of Flying', 'Harry Potter and Half Blood Prince']

# create a in-memory book-store
books = [{'id': id, 'name': book} for id, book in enumerate(book_list, 1)]
@app.route('/books', methods=['GET'])
def get_books():
    if 'name' in request.args:
        req_books = [book for book in books if book['name'] == request.args['name']]
        js = json.dumps(req_books)
        resp = Response(js, status=200, mimetype='application/json')
        resp.headers['Cache-Control'] = 'public'
        resp.headers['Cache-Control'] = 'max-age=20'

    elif 'id' in request.args:
        req_books = [book for book in books if book['id'] == request.args['id']]
        js = json.dumps(req_books)
        resp = Response(js, status=200, mimetype='application/json')
        resp.headers['Cache-Control'] = 'public'
    else:
        js = json.dumps(books)
        resp = Response(js, status=200, mimetype='application/json')
        resp.headers['Cache-Control'] = 'public'

    return resp
最后,我的回复应该有以下形式的标题:-

Cache-Control: public
Cache-Control: max-age=20

resp.headers
是一个python字典,因此它将键“Cache Control”映射到一个值。设置两次后,将覆盖以前设置的值。幸运的是,您可以将逗号分隔的列表与以下标题一起使用:

resp.headers['Cache-Control'] = 'public, max-age=20'