设置 URL 以在 Django 模板中加载 iframe
Set URL to load iframe in a Django template
我想将 iframe
加载到 Django 模板中。模板已正确加载,但代替 iframe
,模板本身已嵌入到父模板中。相关代码如下:
<body>
<p>
<strong>Player: {{player.username}}</strong>
<div id="playerid">{{player.id}}</div><br>
<iframe id="encoder_iframe" height=75% width="50%" src="testgame.html"></iframe>
<br>
<strong>Last score:</strong>
<span id="scores"></span><br><br>
<strong>Game state:</strong>
<div id="gamestate"></span>
</p>
<br>
</body>
testgame.html 是与此 HTML 模板位于同一目录中的文件,但它不会加载。取而代之的是父模板本身。我查看了 Stack Overflow,从我收集到的一些帖子中,我需要将 iframe
的 src
属性设置为 Django 视图,这将单独加载 iframe
。这个对吗?如果是这样,我该如何配置 URL(即设置视图的路径)?
是的,您必须创建视图才能加载模板。最简单的方法是使用泛型 TemplateView。在您的 urls.py
:
中将此 url 添加到 urlpatterns
from django.views.generic import TemplateView
url(r'^testgame/', TemplateView.as_view(template_name="testgame.html"),
name='testgame'),
而 <iframe>
标签将如下所示:
<iframe id="encoder_iframe" height=75% width="50%" src="{% url 'testgame' %}">
</iframe>
如果你想在url之外使用,你可以这样做:
<iframe id="encoder_iframe" height=75% width="50%" src="http://www.example.com/testgame.html"></iframe>
添加 src 为 http://
或 https://
,否则例如它会变成类似 http://127.0.0.1:8000/www.example.com/testgame.html
我想将 iframe
加载到 Django 模板中。模板已正确加载,但代替 iframe
,模板本身已嵌入到父模板中。相关代码如下:
<body>
<p>
<strong>Player: {{player.username}}</strong>
<div id="playerid">{{player.id}}</div><br>
<iframe id="encoder_iframe" height=75% width="50%" src="testgame.html"></iframe>
<br>
<strong>Last score:</strong>
<span id="scores"></span><br><br>
<strong>Game state:</strong>
<div id="gamestate"></span>
</p>
<br>
</body>
testgame.html 是与此 HTML 模板位于同一目录中的文件,但它不会加载。取而代之的是父模板本身。我查看了 Stack Overflow,从我收集到的一些帖子中,我需要将 iframe
的 src
属性设置为 Django 视图,这将单独加载 iframe
。这个对吗?如果是这样,我该如何配置 URL(即设置视图的路径)?
是的,您必须创建视图才能加载模板。最简单的方法是使用泛型 TemplateView。在您的 urls.py
:
urlpatterns
from django.views.generic import TemplateView
url(r'^testgame/', TemplateView.as_view(template_name="testgame.html"),
name='testgame'),
而 <iframe>
标签将如下所示:
<iframe id="encoder_iframe" height=75% width="50%" src="{% url 'testgame' %}">
</iframe>
如果你想在url之外使用,你可以这样做:
<iframe id="encoder_iframe" height=75% width="50%" src="http://www.example.com/testgame.html"></iframe>
添加 src 为 http://
或 https://
,否则例如它会变成类似 http://127.0.0.1:8000/www.example.com/testgame.html