2016-04-12 62 views
0

幾天前我剛剛拿起Django,除了java之外,我沒有太多其他語言的經驗,所以Python有點像學習曲線。我設法創建一個網頁,每次刷新它時都會生成一個隨機數,並告訴您它是否是第一位。Django如何使用多行返回HttpResponse

current

問題出在使用單頁上的多條線路。而不是頁面看起來像那樣,我希望它被垂直格式,如:

click

n = random.randint(1, 2) # returns a random integer 
if n == 1: 
    query = "The number is One." 
else: 
    query = "The number Is'nt One." 
return HttpResponse(str('Randomly generated number: ') + str(n) + str(" ") + str(query)) 

一件事我注意到的是,經過「返回的HttpResponse」所有的代碼是不使用的,用於例如,如果我已將「if」和「else」語句移到HttpResponse之後,它將被標記爲未使用的代碼,並且不會出現在最終產品上。

+2

你需要html ....'
'是html中的換行符...它可能是你開始瀏覽模板的時間... –

+2

Django可以呈現HTML模板。但是硬編碼HTML'
'也可以。和sidenote:你不需要'str()'那些已經是字符串值的東西,比如'str(「」)' –

+1

「我注意到的一件事是,」return HttpResponse「之後的所有代碼都沒有被使用。 。返回總是一個函數的結束。當一個函數的執行命中一個return語句時,你將永遠不會運行任何後面的代碼。 – user5219763

回答

0

只要使用<br/>你想要的休息線。瀏覽器發現<br/>更改行。

n = random.randint(1, 2) # returns a random integer 
if n == 1: 
    query = "The number is one." 
else: 
    query = "The number isn't one." 
return HttpResponse('Random Number Generator <br/> The random number is: ') + str(n) + "<br/>" + query) 
0

我認爲最好的解決辦法是設置content_type="text/plain"

n = random.randint(1, 2) # returns a random integer 
if n == 1: 
    query = "The number is One." 
else: 
    query = "The number Isn't One." 
output_string = "Randomly generated number: \n The random number is: " + str(n) + "\n" + query 
return HttpResponse(output_string, content_type="text/plain") 

的HttpResponse的默認內容類型是text/htmldocs),因此使用<br>會工作。但是,這基本上會創建一個無效的HTML頁面。因此,對於如此簡單的輸出,我認爲text/plain是最佳選擇。

相關問題