本文概述
- 渲染外部HTML文件
- 定界符
- 在HTML中嵌入Python语句
- 在HTML中引用静态文件
例子
下面的flask脚本包含一个视图函数, 即与URL’ /’ 相关联的message()。与其返回简单的纯字符串作为消息, 不如使用HTML返回一条带有< h1> 标签的消息。
script.py
from flask import *app = Flask(__name__)@app.route('/')def message():return "<
html>
<
body>
<
h1>
Hi, welcome to the website<
/h1>
<
/body>
<
/html>
"if __name__ == '__main__':app.run(debug = True)
文章图片
渲染外部HTML文件 Flask帮助我们呈现外部HTML文件, 而不是在视图函数中对HTML进行硬编码。在这里, 我们可以利用Python Flask所基于的jinja2模板引擎。
Flask为我们提供了render_template()函数, 该函数可用于呈现外部HTML文件, 以作为来自视图函数的响应返回。
考虑以下示例。
例子
要从视图功能渲染HTML文件, 首先让我们创建一个名为message.html的HTML文件。
message.html
<
html>
<
head>
<
title>
Message<
/title>
<
/head>
<
body>
<
h1>
hi, welcome to the website <
/h1>
<
/body>
<
/html>
script.py
from flask import *app = Flask(__name__)@app.route('/')def message():return render_template('message.html')if __name__ == '__main__':app.run(debug = True)
在这里, 我们必须在应用程序目录中创建文件夹模板, 并将Python Flask脚本中引用的HTML模板保存在该目录中。
在我们的示例中, 脚本文件script.py的路径为E:\ flask, 而HTML模板的路径为E:\ flask \ templates。
应用目录
- script.py
- 范本
- message.html
文章图片
定界符 【Python Flask模板详细用法介绍】Jinga 2模板引擎提供了一些定界符, 可在HTML中使用这些定界符以使其能够动态表示数据。模板系统提供了一些HTML语法, 这些语法是变量和表达式的占位符, 在呈现模板时将其替换为它们的实际值。
jinga2模板引擎提供以下定界符以从HTML中转义。
- {%… %}用于声明
- {{… }}用于将表达式打印到模板输出
- {#… #}用于模板输出中未包含的注释
- #… ##用于行语句
考虑以下示例, 其中使用{{… }}分隔符在HTML脚本中显示URL的可变部分。
message.html
<
html>
<
head>
<
title>
Message<
/title>
<
/head>
<
body>
<
h1>
hi, {{ name }}<
/h1>
<
/body>
<
/html>
script.py
from flask import *app = Flask(__name__) @app.route('/user/<
uname>
')def message(uname):return render_template('message.html', name=uname)if __name__ == '__main__':app.run(debug = True)
文章图片
URL http:// localhost:5000 / user / admin的可变部分在HTML脚本中使用{{name}}占位符显示。
在HTML中嵌入Python语句 由于HTML是一种标记语言, 并且仅用于设计目的, 因此有时在Web应用程序中, 我们可能需要执行用于通用计算的语句。为此, Flask为我们简化了定界符{%… %}, 该定界符可用于将简单的python语句嵌入HTML。
例子
在以下示例中, 我们将打印URL中指定的数字表, 即URL http:// localhost:5000 / table / 10将在浏览器窗口中打印10的表。
在这里, 我们必须注意, for循环语句包含在{%… %}分隔符内, 而循环变量和数字包含在{{… }}占位符内。
script.py
from flask import *app = Flask(__name__) @app.route('/table/<
int:num>
')def table(num):return render_template('print-table.html', n=num)if __name__ == '__main__':app.run(debug = True)
print-table.py
<
html>
<
head>
<
title>
print table<
/title>
<
/head>
<
body>
<
h2>
printing table of {{n}}<
/h2>
{% for iin range(1, 11): %}<
h3>
{{n}} X {{i}} = {{n * i}} <
/h3>
{% endfor %}<
/body>
<
/html>
文章图片
在HTML中引用静态文件 诸如CSS或JavaScript文件之类的静态文件可增强HTML网页的显示。 Web服务器被配置为从包中或模块旁边的静态文件夹中提供此类文件。静态文件位于应用程序的路径/ static处。
例子
在以下示例中, flask脚本返回HTML文件, 即message.html, 该文件使用样式表style.css设置样式。 flask模板系统在static / css目录下找到静态CSS文件。因此, style.css将保存在指定路径中。
script.py
from flask import *app = Flask(__name__)@app.route('/')def message():return render_template('message.html')if __name__ == '__main__':app.run(debug = True)
message.html
<
html>
<
head>
<
title>
Message<
/title>
<
link rel="stylesheet" href="http://www.srcmini.com/{{ url_for('static', filename='css/style.css') }}">
<
/head>
<
body>
<
h1>
hi, welcome to the website<
/h1>
<
/body>
<
/html>
style.css
body {background-color: powderblue;
}h1 {color: blue;
}p {color: red;
}
文章图片
推荐阅读
- Flask和Django有什么不同和区别()
- Python Flask SQLite数据库开发实例
- Python Flask教程介绍
- Python Flask SQLAlchemy ORM数据开发实例
- Python Flask如何使用和处理会话session()
- Python Flask重定向和错误处理
- Python Flask邮件扩展进阶开发
- Python Flask如何使用Request对象()
- Android 最流行的吸顶效果的实现及代码