WeChatアプレット開発への道(2)Djangoフレームワーク学習

WeChatアプレット開発への道(2)Djangoフレームワーク学習テンプレートの適用1
django.http.HttpResponse()を使用して「HelloWorld!」を出力します。この方法では、データとビューが混在しますが、これはDjangoのMVCの考え方に準拠していません。
Djangoテンプレートのアプリケーションを詳しく紹介します。テンプレートは、ドキュメントのプレゼンテーションとコンテンツを分離するために使用されるテキストです。
次に、前の章のプロジェクトは、HelloWorldディレクトリの下にtemplatesディレクトリを作成し、runoob.htmlファイルを作成します。全体のディレクトリ構造は次のとおりです。

HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- views.py
|   |-- views.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py
`-- templates
    `-- runoob.html

runoob.htmlファイルのコードは次のとおりです。
ここに画像の説明を挿入
テンプレートから、変数が二重角かっこを使用していることがわかります。
次に、テンプレートファイルのDjangoへのパスを説明し、HelloWorld / settings.pyを変更し、TEMPLATESのDIRS[os.path.join(BASE_DIR, 'templates')]を次のように
コードを変更する
変更する必要があります。views.pyを変更して、テンプレートにデータを送信する新しいオブジェクトを追加します。

from django.shortcuts import render
 
def runoob(request):
    context          = {
    
    }
    context['hello'] = 'Hello World!'
    return render(request, 'runoob.html', context)

ここに画像の説明を挿入

from django.urls import path
 
from . import views
 
urlpatterns = [
    path('runoob/', views.runoob),
]

ここに画像の説明を挿入
ご覧のとおり、ここではレンダリングを使用して、以前に使用したHttpResponseを置き換えています。Renderは、辞書コンテキストもパラメーターとして使用します。
コンテキストディクショナリの要素のキー値helloは、テンプレートの変数{ {hello}}に対応します
もう一度http://127.0.0.1:8000/runoobにアクセスすると、次のページが表示されます。
ここに画像の説明を挿入
エラー404が報告されていることを意味しますが、なぜ(保存しなかった可能性があります)
ここに画像の説明を挿入
パスを変更します。設定でこの文のうち、この文は「BASE_DIR / templates」フォルダをポイントしてテンプレートを取得します。BASE_DIRは実際には第1レベルのHelloWorldフォルダーであり、テンプレートは第2レベルのHello Worldフォルダーにあるため、エラーが常に表示されます。BASE_DIRはmanage.pyファイルが配置されているパスであることに注意してください。
ここに画像の説明を挿入
ここに画像の説明を挿入
このようにして、データとビューの分離を実現するために、テンプレートを使用してデータを出力しました。

おすすめ

転載: blog.csdn.net/xulei1132562/article/details/113550487