Python Flask Kasıtlı Boş Yanıt


99

make_response()Sayfayı tekrar oluşturmaması ve başka bir şey yapmaması için belirli özelliklere sahip bir yanıt ( nesneden veya benzerinden) döndürmenin bir yolu var mı ? Herhangi bir çıktı oluşturmadan sunucuda bir kod çalıştırmaya çalışıyorum

Basit bir 'dönüş Yok' şunu üretir:

ValueError: View function did not return a response

Bu mümkün olmalıdır çünkü aşağıdakiler yalnızca bir dosyayı indirir ve şablonu oluşturmaz:

myString = "First line of a document"
response = make_response(myString)
response.headers["Content-Disposition"] = "attachment; filename=myFile.txt"
return response

Yanıtlar:


175

Bir isteğe yanıt veriyorsunuz, HTTP sunucunuzun bir şey döndürmesi gerekiyor . HTTP 'boş yanıt' yanıtı :204 No Content

return ('', 204)

Tarayıcıya bir dosya döndürmenin boş bir yanıt olmadığını , sadece HTML yanıtından farklı olduğunu unutmayın.


14
Ftr: httplib.NO_CONTENTsihirli numaradan kaçınmak için kullanabilirsiniz .
dtk

11
Python 2'nin httplib.NO_CONTENTPython 3'teki eşdeğerinin http.HTTPStatus.NO_CONTENT.
bfontaine

2
@bfontaine: veyahttp.client.NO_CONTENT
Martijn Pieters

2
@bfontaine: httppaket belgelerinin altında ; Bu kullanılan kadar normale yer olması HTTPStatusenum tanıtıldı bkz github.com/python/cpython/commit/...
Martijn Pieters
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.