Skip to main content
 首页 » 编程设计

python之如何在 Django 中使用 iframe 进行生产

2025年02月15日25jillzhang

我从 2005 年开始使用 WordPress,现在正在将我所有的网站切换到 Django 项目。这是我的第一个 Django 项目,它将有多个网络应用程序。

我正在使用 Visual Studio Preview 2017 创建我的 Django 项目。 在我的项目中,我设置了一个主 Web 应用程序,其中包含项目 urls.py、view.py、model.py 和包含主要 html 页面的模板文件夹。这个主要的网络应用程序将连接到项目中的其他网络应用程序。

我知道网络应用程序开发的目标是让一个人继续使用网络应用程序。话虽如此,我需要向我的项目添加博客和附属页面。我知道如何做到这一点的唯一方法是 iframe。

我在这个网站上找到了一个选项,但除了添加 | 之外没有任何意义。安全的网址。 [1]: generate iframe from django tag

我查看了上面的链接和我的问题,如果我需要在我的项目 Web 应用程序的代码中使用序列化程序?

我的代码是:

Affi 网络应用

web_host_python.html

     <html> 
<head><title>Web Host Python Hosting</title></head> 
 
<body> 
 
{{ whpaff.html | safe }} 
 
</body> 
</html> 

whpaff.html

<!DOCTYPE html> 
 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
</head> 
<body> 
    <iframe src=" https://www.webhostpython.com/billing/aff.php?aff=69"  
                  style="border:0px #ffffff none;" name="web_host_python"  
                  scrolling="no" frameborder="1" marginheight="0px"  
                  marginwidth="0px"  
                  height="100%" width="100%" allowfullscreen></iframe> 
</body> 
</html> 

urls_affi.py

from django.conf.urls import url 
from . import views 
 
urlpattens = [ 
    url(r'^$', views.home), 
    ] 

view_affi.py

from django.shortcuts import render, HttpResponse 
 
# Create your views here. 
def web_host_python(request): 
    return render(request, 'affi/web_host_python.html') 

项目主应用

网址.py

   """ 
Definition of urls for affiliate_sites. 
""" 
 
from datetime import datetime 
from django.conf.urls import url 
import django.contrib.auth.views 
 
import app.forms 
import app.views 
 
# Uncomment the next lines to enable the admin: 
# from django.conf.urls import include 
# from django.contrib import admin 
# admin.autodiscover() 
 
urlpatterns = [ 
    # Examples: 
    url(r'^affi$', views_affi.web_host_python, name='web_host_python), 
    url(r'^$', app.views.home, name='home'), 
    url(r'^contact$', app.views.contact, name='contact'), 
    url(r'^about', app.views.about, name='about'), 
    url(r'^login/$', 
        django.contrib.auth.views.login, 
        { 
            'template_name': 'app/login.html', 
            'authentication_form': app.forms.BootstrapAuthenticationForm, 
            'extra_context': 
            { 
                'title': 'Log in', 
                'year': datetime.now().year, 
            } 
        }, 
        name='login'), 
    url(r'^logout$', 
        django.contrib.auth.views.logout, 
        { 
            'next_page': '/', 
        }, 
        name='logout'), 
 
    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 
 
    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 

View .py

   """ 
Definition of views. 
""" 
 
from django.shortcuts import render 
from django.http import HttpRequest 
from django.template import RequestContext 
from datetime import datetime 
 
def web_host_python(request): 
    """Renders the home page.""" 
    assert isinstance(request, HttpRequest) 
    return render( 
        request, 
        'affi/web_host_python.html' 
        { 
            'title':'affi/web_host_python.html', 
            'year':datetime.now().year, 
        } 
    ) 
 
def home(request): 
    """Renders the home page.""" 
    assert isinstance(request, HttpRequest) 
    return render( 
        request, 
        'app/index.html', 
        { 
            'title':'Home Page', 
            'year':datetime.now().year, 
        } 
    ) 
 
def contact(request): 
    """Renders the contact page.""" 
    assert isinstance(request, HttpRequest) 
    return render( 
        request, 
        'app/contact.html', 
        { 
            'title':'Contact', 
            'message':'Your contact page.', 
            'year':datetime.now().year, 
        } 
    ) 
 
def about(request): 
    """Renders the about page.""" 
    assert isinstance(request, HttpRequest) 
    return render( 
        request, 
        'app/about.html', 
        { 
            'title':'About', 
            'message':'Your application description page.', 
            'year':datetime.now().year, 
        } 
    ) 

我所做的是否正确?

或者是否有其他更简单的方法在 Django 中执行 iframe?

感谢您的所有建议。

马库斯

请您参考如下方法:

我认为您的代码并没有按照您的想法行事。 {{ whpaff.html | safe }}将查找名为 whpaff 的参数当 render() 时被传递到模板中调用函数,然后嵌入 html 的值将该参数的属性添加到生成的输出中。您正在传递其他参数,例如 title , message , 和 year给你的一些render()功能,但我看不到任何地方你正在传递 whpaff范围。我认为您打算让它神奇地加载文件“whpaff.html”并将该文件的内容嵌入到您的输出中,但这不是 {{ }} 的方式。 block 在 Django 模板中工作。

另一方面,一个<iframe>是一个 HTML 标记,允许您在页面中显示来自其他 URL 的内容。 Django 与 <iframe> 没有直接关系.您可以包含 <iframe>像任何其他 HTML 标签一样在 Django 模板中添加标签,或者您可以使用 <iframe>引用由 Django 生成的 URL 的标记,但 Django 不会知道或关心 <iframe>在任一情况下。