确定要在http响应中发送的最佳内容
accept-types的Python项目详细描述
accept-types帮助您的应用程序以客户机喜欢的方式响应http请求。 http请求的Accept头通知服务器客户端期望的mime类型 从这个请求返回,用权重表示最喜欢的。如果您的服务器可以响应 多种格式(如json、xml、html),客户端可以很容易地告诉服务器 首选格式,而不在查询字符串末尾使用诸如“&;format=json”之类的黑客。
用法
get_best_match
如果提供了Accept头和服务器可以响应的类型列表,则此函数 返回客户端最喜欢的类型。此函数将只返回一个可接受的类型 传入,或者None如果找不到合适的类型:
fromaccept_typeimportget_best_matchdefget_the_info(request):info=gather_info()return_type=get_best_match(request.META.get('HTTP_ACCEPT'),['text/html','application/xml','text/json'])ifreturn_type=='application/xml':returnrender_xml(info)elifreturn_type=='text/json':returnrender_json(info)elifreturn_type=='text/html':returnrender_html(info)elifreturn_type==None:returnHttpResponse406()
parse_header
当提供一个Accept头时,它将解析它并返回一个已排序的客户机列表 接受的mime类型。这些将是AcceptableType类的实例。
>>>fromaccept_typeimportparse_header>>>parse_header('text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')['text/html, weight 1','application/xhtml+xml, weight 1','application/xml, weight 0.9','*/*, weight 0.8']
AcceptableType
AcceptableType实例表示客户端愿意接受的类型之一。这个 类型可以包含通配符,以匹配多个mime类型。
>>>fromaccept_typeimportAcceptableType>>>type=AcceptableType('image/*;q=0.9')AcceptableType>>>type.mime_type'image/*'>>>type.weight0.9>>>type.matches('image/png')True>>>type.matches('text/html')False