使用此stackoverflow附加(Load an HTML page into an HTML frame using Flask)作为指南,并且是Flask的新手,我想知道如何使另一个URL(例如---> https://www.afl.com.au/)显示在其中。我自己的使用Flask和Python3的应用程序中的框架(或iframe),并且是否在我自己的PC上本地运行(即在本地主机上)?
我觉得我必须使用Apache或CURL或...?并调用它来满足请求?
如果是这样,那么如何将内容从另一个网站定向到我的应用程序中的Frame(或iFrame)?
好的-对于不确定的事情,我表示歉意,但是由于缺乏答复,我认为我一定犯了一些主要的罪过,我不知道...我一直在进行挖掘/研究(请参阅下文)...我可以更接近目标,但是重新使用“ embed”的第二个URL(compjour.org)的内容在实践中并不总是有效,因此我想知道是否有人可以阐明为什么?< / p>
进一步的工作表明我可以完成...这是我的示例代码-它适用于URL'http://www.bom.gov.au/wa/observations/index.shtml',但对于YouTube来说却不是第二个。 (请注意,frameset2.html文件与app.py代码位于同一目录中。),frameset2代码如下:
<html><iframe src='{{src}}' width="853" height="480" frameborder="0" allowfullscreen></iframe></html>
我也碰到了这个附录http://www.compjour.org/lessons/flask-single-page/simple-youtube-viewing-flask-app/ 但是他们所说的关于嵌入的说法似乎不再起作用(无论如何并非每次都如此)。
请问有什么想法吗?
app.py
from flask import Flask, render_template, request
import os
app = Flask(__name__)
# page = 'index.html'
# page = 'http://www.bom.gov.au/wa/observations/index.shtml'
page = 'https://www.youtube.com/watch?' + 'v=Ov7-FC0KHQA&feature=youtu.be'
os.chdir(r"C:\Users\blah blah ") #not the real dir of course
# all code is in same dir
@app.route('/')
def home():
return render_template('frameset2.html', src=page)
app.run()
frameset2
答案 0 :(得分:0)
Youtube URL无法正常工作的原因是,他们明确禁用了在框架中显示Youtube的功能。
这是通过发送带有YouTube响应的HTTP标头x-frame-options: SAMEORIGIN
来完成的。除非您安装某种浏览器扩展,否则无法避免这种情况(另一方面,BOM似乎不在乎是否在框架中显示其信息)。
您可以通过在浏览器中检查控制台来验证这一点,以查看页面加载期间是否显示任何错误。