こんにちは、助けてくれてありがとう、私はコーディングが苦手です。
指摘するには:Djangoプロジェクトからデータベースからフロントエンドにデータを渡すプロジェクトを行っていますが、今のところDjangoテンプレートに、私は間違った変数タイプを渡しているのではないかと思います;考えについてコメントしてください。
これはviews.pyの私のコードです:
from Django.shortcuts import render
def index (requset):
return render(requset,'myapp/index.html') # link to be able open frountend
def testdex(requset):
text = "hello world"
context ={'mytext' : text }
return render(requset,'myapp/inculdes.html', context)
だから私の変数はインデックスページに拡張するinculdesに渡されます
これはinculdes.htmlで私のコードです:
{% exntends "myapp/index.html" %}
{% block includes %}
{{ mytext }}
{% endblock includes %}
これはindex.htmlの私のコードです:
<body>
{% block includes %} {% endblock includes %}
</body>
私を助けるためにあなたの時間を与えてくれてありがとう、そして私にいくつかのコードを書くことができれば感謝します
あなたはこのようなものを試すことができます
views.py
from Django.template.response import TemplateResponse
def testdex(requset, template_name="myapp/inculdes.html"):
args = {}
text = "hello world"
args['mytext'] = text
return TemplateResponse(request, template_name, args)
inculdes.html
{% extends "myapp/index.html" %}
{% block includes %}
{{ mytext }}
{% endblock includes %}
settings.pyでテンプレートのパスを設定していることを確認してください
あなたがするとき{% block content %}{% endblock content %}
Djangoこのセクションを上書きできるようにしたいことを伝えています。Wordのコンテンツは、上書きしたい内容を反映したものにすることができます。
あなたがするとき{{ variable }}
Djangoは、コンテキストを渡したいと伝えています。この例では、渡したい変数は、キーとしてTitle、値としてPortfolioと呼ばれています。Contextは、次のようにviews.pyを渡します:
def portfolio_home(request):
return render(request, 'portfolio/work.html', {'title': 'Portfolio'})
コンテキスト(または変数)をベーステンプレートに渡したいとしましょう。この例では、ベーステンプレートのヘッドセクションのタイトルタグでタイトルを渡します。
base.htmlのhtmlファイルでは、次のようなものが必要です。
<!DOCTYPE html>
<html lang="en">
{% load staticfiles %}
<head>
<title>{{ title }}</title>
...........
</head>
</html>
プロジェクトのurls.pyと、これにタイトルを渡したい他のアプリで、次のようなビューを作成する必要があります。
def portfolio_home(request):
return render(request, 'portfolio/work.html', {'title': 'Portfolio'})
DjangoがHTMLに変数を渡せない理由がわかりました。
ビューで関数/モデルをアクティブにするアプリのURLを持っていなかった
そのような単純な間違いのため、私はとても恥ずかしいと思います。
私がする必要があるすべては私のアプリのURLにこのコードを追加することです
urlpatterns = [
path('', views.timedex, name='timedex'), #need add this
path('', views.index, name='index'),
]
{%endblock include%}の前に{{block.super}}を追加します