【问题标题】:Set URL to load iframe in a Django template设置 URL 以在 Django 模板中加载 iframe
【发布时间】:2015-03-31 20:35:35
【问题描述】:

我想将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(即设置视图的路径)?

【问题讨论】:

  • iframe 的 src 与任何其他 URL 完全相同。如果您希望 Django 为其提供服务,则需要与任何其他 Django 页面完全相同。

标签: javascript html django iframe


【解决方案1】:

是的,您必须创建视图才能加载模板。最简单的方法是使用通用TemplateView。将此网址添加到您的urls.py 中的urlpatterns

from django.views.generic import TemplateView

url(r'^testgame/', TemplateView.as_view(template_name="testgame.html"),
                   name='testgame'),

&lt;iframe&gt; 标签看起来像:

<iframe id="encoder_iframe" height=75% width="50%" src="{% url 'testgame' %}">
</iframe>
                   

【讨论】:

  • 非常感谢,这解决了我的问题。我还有另一个疑问——在这种情况下,我的 HTML 文件是本地存在的,所以它可以工作。但是,如果我的 HTML 作为 URL 而不是作为本地文件托管在任何地方,例如example.com/testgame.html,那我该如何设置“src”属性呢?
  • src 属性应指向提供此 html 的 url。如果您从您的应用程序中提供它,那么我的答案将显示如何做到这一点。如果此 html 是从外部(不是您的)站点提供的,则将 src 设置为 example.com/testgame.html
  • 好的。在这种情况下,应该有一个视图来实际加载该 HTML,对吗?我想知道如何从父模板或 urls.py 文件中调用该视图。
  • 没有。视图和相应的 url() 仅用于从您的站点提供此 html 模板。如果 html 的来源是其他站点,那么您只需在 src 标记中指向该站点。如果事实 &lt;iframe&lt; 标签在您和外部站点之间没有区别。它只是从指定的 url 加载 html。
  • 以上步骤我都试过了。我收到错误“本地主机拒绝连接”。我还在 settings.py 文件中的 ALLOWED_HOSTS 属性中添加了“locahost”。有解决此问题的建议吗?
【解决方案2】:

如果你想使用外部 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之类的东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多