2012-12-13 61 views
1

我是Django的新手,我試圖創建一個簡單的html框架來驗證一切工作正常。一切正常(服務器正在運行並加載文件),但是當我輸入HTML代碼時,它將顯示爲原始文本,而不是正確顯示。Django render_to_response顯示原始文本

我views.py是如下

def home(request): 
     return render_to_response('index.html')

我是index.html,如下所示

<!DOCTYPE html > 

    <html> 
      <head> 
       <meta charset="UTF-8"> 
        <title> awesome </title> 
      </head> 
      <body> 
       
      </body> 
    </html>

我應該怎麼做才能讓它正確地呈現? (只顯示「真棒」)

編輯 至於這個問題,錯誤來了,我把原始代碼保存爲html。當我選擇這個選項時,它添加了代碼,使html渲染看起來像一個原始輸入。

這個故事告訴我們:請確保您在文本編輯器來編輯並用手

回答

1

你需要做的是建立一個「基地」模板,其他模板可從延長的第一件事改變擴展。您通常會將其稱爲base.html,但您可以使用所需的名稱。您還需要創建blocks該擴展模板,可以使用:

base.html文件

<!DOCTYPE html > 

<html> 
    <head> 
    <meta charset="UTF-8"> 
     <title> awesome </title> 
    </head> 
    <body> 
    {% block content %}{% endblock %} 
    </body> 
</html> 

然後,你必須從你的index.html延長base.html和使用content塊中,我們已經創建了:

index.html

{% extends "base.html" %} 

{% block content %} 
{% endblock %} 

此時,index.html將與base.html完全相同,因爲您沒有在content塊內顯示任何內容。像這樣一些數據更新您的看法:

views.py

def home(request): 
    data = {'name': 'YourName', 'age': 25} 

    return render_to_response('index.html', data) 

現在,再次,更新您的index.html

的index.html

{% extends "base.html"%} 

{% block content %} 
    <p>My name is {{ name }}</p> 
    <p>I'm {{ age }} years old</p> 
{% endblock %} 

唐不要忘記閱讀罰款tutorial

1

幾個問題..

1:你的標籤裏面的空間是什麼?

<title>無效。它需要是<title>Foo</title>這就是爲什麼你看到「HTML」。

2:即使標題標籤寫得正確,標題標籤也不會呈現,因此您將獲得空白頁面。如果你想顯示「真棒」 - 你需要把它寫在身體標籤。

<body>awesome</body> 
2

1)<標題中的空格>標籤

2),並在你的urls.py文件中添加婁代碼無需與地圖,你可以從網址也

(r'^home/$', 'django.views.generic.simple.direct_to_template', 
     {'template': 'index.html'}), 
渲染HTML頁面
相關問題