簡體   English   中英

在響應標頭燒瓶中設置多個選項

[英]Set multiple options in response headers flask

我們如何為燒瓶中的標題設置多個選項。 例如:我想在Cache-Control標頭中設置兩個選項,一個是max-age ,另一個是public / private 我如何在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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM