不能在Flask中使用HTML

时间:2019-12-22 02:12:36

标签: python flask

我正在尝试构建基本的Flask Web应用程序。当我尝试向编辑器中添加简单的html代码(如下所示),然后在Terminal中运行“ Flask运行”时,它给了我“无效的语法”。我已经尝试了许多不同的html代码,但它不喜欢任何一个。

newline=''

3 个答案:

答案 0 :(得分:2)

您对刚编写的代码有任何想法吗?

from flask import Flask
app = Flask(__name__)

html = """<iframe width="420" height="315" src="https://www.youtube.com/watch?v=ZEcqHA7dbwM"></iframe>"""

@app.route('/')
    def hello_world():
    return html

然后运行flask run以启动Flask服务器

答案 1 :(得分:1)

此代码已完全损坏,因为结尾处的HTML实际上不是有效的Python语法。准确执行您要尝试的操作的最简单方法是,创建一个包含该HTML的python字符串,然后使hello_world函数返回该字符串:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    html = """<iframe width="420" height="315"
        src="https://www.youtube.com/watch?v=ZEcqHA7dbwM">
        </iframe>
    """
    return html

if __name__ == '__main__':
    app.run(host='0.0.0.0')

当然,如果您创建了一个名为templates的目录并将HTML放在文件templates/index.html中,则可以使用Flask的render_template函数来实现相同的目的:

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def hello_world():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0')

答案 2 :(得分:1)

请注意,如果您只想提供一个静态HTML页面,则实际上并不需要Flask,因为Flask用于动态内容。相反,您可以将所有静态HTML文件放在一个目录中,然后运行python3 -m http.server启动一个简单的轻量级HTTP服务器,该服务器可以提供静态HTML内容。

$ cat <<EOF > index.html
<iframe width="420" height="315"
src="https://www.youtube.com/watch?v=ZEcqHA7dbwM">
</iframe>
EOF

$ python3 -m http.server

现在,您可以在浏览器中打开http://localhost:8000并查看已投放的静态内容。

如果要使用其他端口,请将端口号作为参数传递给python调用:python3 -m http.server 9999

如果您正在运行Python 2,则等效命令为python2 -m SimpleHTTPServer