1

私はDjangoが初めてで、すべてが正しく機能していることを確認するために単純なhtmlスケルトンを作成しようとしています. すべてが機能しています (サーバーが実行され、ファイルが読み込まれます) が、HTML コードを挿入すると、正しくレンダリングされるのではなく、生のテキストとして表示されます。

私の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>

正しくレンダリングするにはどうすればよいですか? (「素晴らしい」のみ表示)

EDIT この問題に関する限り、未加工のコードを html として保存したというエラーが発生しました。このオプションを選択すると、生の入力のように見えるように html をレンダリングするコードが追加されました。

教訓: 編集は必ずテキスト エディターで行い、拡張子は手動で変更してください

4

3 に答える 3

2

1)<title>タグのスペースを削除します

2)urls.pyファイルに次のコードを追加します。ビューにマッピングする必要はありません。URLからhtmlページをレンダリングすることもできます。

 (r'^home/$', 'django.views.generic.simple.direct_to_template',
        {'template': 'index.html'}),
于 2012-12-14T06:33:20.873 に答える
2

いくつかの問題..

1:タグ内のスペースはどうなっていますか?

< title >無効です。<title>Foo</title>「html」が表示されているのはそのためです。

2:タイトルタグが正しく書き込まれていても、タイトルタグはレンダリングされないため、空白のページが表示されます。「素晴らしい」を表示したい場合は、bodyタグ内に書き込む必要があります。

<body>awesome</body>
于 2012-12-13T22:44:57.120 に答える
1

最初に行う必要があるのは、「ベース」テンプレートを作成して、他のテンプレートを拡張できるようにすることです。通常はそれを呼び出しますbase.htmlが、必要な名前を使用できます。blocksまた、使用できる拡張テンプレートを作成する必要があります。

base.html

<!DOCTYPE html >

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

次に、作成したブロックを拡張base.htmlしてindex.html使用する必要があります。content

index.html

{% extends "base.html" %}

{% block content %}
{% endblock %}

この時点では、ブロック内に何も表示されていないため、index.htmlまったく同じになります。次のようなデータでビューを更新します。base.htmlcontent

ビュー.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 %}

素晴らしいチュートリアルを読むことを忘れないでください。

于 2012-12-13T22:33:44.680 に答える