设置 URL 以在 Django 模板中加载 iframe

Set URL to load iframe in a Django template

本文关键字:加载 iframe URL 以在 Django 设置      更新时间:2023-09-26

我想将iframe加载到 Django 模板中。模板正在正确加载,但代替iframe,模板本身嵌入到父模板中。相关代码如下:

<body>
    <p>
        <strong>Player: {{player.username}}</strong>&nbsp;
        <div id="playerid">{{player.id}}</div><br>
        <iframe id="encoder_iframe" height=75% width="50%" src="testgame.html"></iframe>
        <br>
        <strong>Last score:</strong>&nbsp;
        <span id="scores"></span><br><br>
        <strong>Game state:</strong>
        <div id="gamestate"></span>
    </p>
    <br>
</body>

testgame.html 是一个与此 HTML 模板位于同一目录中的文件,但它不会加载。在其位置上,将显示父模板本身。我环顾了一下 Stack Overflow,从我收集的一些帖子中,我需要将iframesrc 属性设置为 Django 视图,这将单独加载iframe。这是对的吗?如果是这样,如何配置 URL(即设置视图的路径)?

是的,您必须创建视图才能加载模板。 执行此操作的最简单方法是使用通用模板视图。 将此 URL 添加到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>

添加带有 http://https:// 的 SRC ,否则例如它将变成类似 http://127.0.0.1:8000/www.example.com/testgame.html