2012-11-09 94 views
-3

我對這種行爲感到困惑。代碼只是打印請求的類型。第一種方法有效,但第二種方法返回空字符串。該類的類型是django.corehandlers.wsgi.WSGIRequest。Django - 請求類型


(編輯澄清)

def someview(request):                                   
    html+="<p>type of the request each char "                             
    for i in range(47):                                  
     html+= (str(type(request))[i])                               
    html+="</p>"                                    

    html+="<p>type of the request each char "                             
    for i in range(47):                                  
     html+= repr(str(type(request))[i])                              
    html+="</p>"                                    

    return HttpResponse(html) 

結果如下。第二個字符串是空的。

type of the request each char '<''c''l''a''s''s'' '"'"'d''j''a''n''g''o''.''c''o''r''e''.''h''a''n''d''l''e''r''s''.''w''s''g''i''.''W''S''G''I''R''e''q''u''e''s''t'"'"'>' 

type of the request: 
+0

你想在這裏做什麼?類型(請求)應該給你''左右。如果你拿這個len():18個字符。那麼你如何得到47?你傳遞給函數的是什麼?你的目標是什麼? –

+0

你想擁有「?」嗎?符號由'str(type(request))'評估結果替換? –

回答

1

所以你的問題是爲什麼第二行不打印任何東西?答案是你需要repr(),而不是str()

但是,你意識到它會總是是相同的WSGIRequest,對不對?您正在打印request對象的類別的表示形式。您可能想要request.METHOD

+0

謝謝。爲什麼str()不起作用?我會認爲str(type(X))總是會返回一些東西。 – RParadox