我从 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>在任一情况下。
