2012-07-19 96 views
3

POST和GET請求是否可以在一個HttpRequest中發生?Django - POST和GET請求可以在一個HttpRequest中返回嗎?

如果是這樣,我該如何檢測其中一個或另一個的存在?

request.method == 'POST'

request.method == 'GET'

可以不同時爲真。 (好吧,我想一個可以做一些可怕的hackery定義==或重定向調用方法到一個函數,但是新聞。)

+0

HTTP請求是POST _或_ GET not _and_。 – 2012-07-19 12:06:09

+0

這就是我正在尋找的,謝謝。我不確定文檔中的OR是真正的OR還是XOR。 – jhoyla 2012-07-19 12:07:14

+0

除Django實際上允許您在同一請求中發送POST _and_ GET。 嘗試將表單的action屬性設置爲action =「dosomething /?var = 1」和method =「post」。您將能夠在request.GET和request.POST QueryDicts中查看數據。 – 2012-07-19 20:45:53

回答

6

你不返回一個請求,但一個響應。響應不關心它是否爲GETPOST,它取決於您的實施方式,以及您想要執行的操作並響應這些請求。

修改意見: 您可以安全地使用您的方法來檢查請求的類型,即使用request.method == 'POST'request.method == 'GET。如果你想確認一下request.POST。 例如

if request.method == 'POST' and request.POST: 
    #do POST processing 

elif request.method == "GET" and request.GET : 
    #do GET processing 
+0

你是對的,我已經更新了這個問題。如何判斷POST是否實際存在或爲空,而不調用'if request.POST:' – jhoyla 2012-07-19 11:41:13

1

原來,一個HTTP響應(如在底層技術中)不能/不應該同時返回POST和GET數據。我認爲我這個根本的誤解讓人們感到困惑。

相關問題