当前位置: 首页 > wzjs >正文

成都网站建设哪儿济南兴田德润怎么联系网络营销的主要推广方式

成都网站建设哪儿济南兴田德润怎么联系,网络营销的主要推广方式,编程入门教程,口碑好网站建设电话Flask 模板渲染 模板是包含占位符的 HTML 文件 Flask 使用 Jinja2 模板引擎来处理模板渲染。模板渲染允许你将动态内容插入到 HTML 页面中,使得应用能够生成动态的网页内容。 创建模板:将 HTML 文件放在 templates 文件夹中,使用 Jinja2 占…

Flask 模板渲染

模板是包含占位符的 HTML 文件

Flask 使用 Jinja2 模板引擎来处理模板渲染。模板渲染允许你将动态内容插入到 HTML 页面中,使得应用能够生成动态的网页内容。

  1. 创建模板:将 HTML 文件放在 templates 文件夹中,使用 Jinja2 占位符。
  2. 渲染模板:使用 render_template 函数在视图函数中渲染模板。
  3. 模板继承:创建基础模板,允许其他模板继承和扩展。
  4. 控制结构:使用条件语句和循环在模板中控制逻辑。
  5. 过滤器:使用过滤器格式化变量数据。
  6. 宏和模板包含:创建和使用宏以及模板包含,提高模板的复用性。
  7. 安全性:Jinja2 默认对模板变量进行自动转义以防止 XSS 攻击。
  8. 模板上下文:将数据传递给模板,并在模板中使用这些数据。

基本概念/创建模板

模板是包含占位符的 HTML 文件。

Flask 使用 Jinja2 模板引擎来渲染这些模板,将 Python 数据插入到 HTML 中,从而生成最终的网页。

<!DOCTYPE html>
<html>
<head><title>Welcome</title>
</head>
<body><h1>{{ title }}</h1><p>Hello, {{ name }}!</p>
</body>
</html>

app.py

from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():return render_template('index.html',title='Home',name='Misha')if __name__ == '__main__':app.run(debug=True)

格式: {{ 变量名 }}

01.png

模板继承

root.html

<!DOCTYPE html>
<html>
<head><title>{% block title %}My Website{% endblock %}</title>
</head>
<body><header><h1>My Website</h1></header><main>{% block content %}{% endblock %}</main><footer><p>Footer content</p></footer>
</body>
</html>

leaf.html

{% extends "root.html" %}{% block title %}Home Page{% endblock %}{% block content %}
<h2>Welcome to the Home Page!</h2>
<p>Content goes here.</p>
{% endblock %}

app.py

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

检查响应的内容确实被替换了

02.png

格式:可替换区域 {% block 变量名 %} {% endblock %}

控制结构

Jinja2 提供了多种控制结构,用于在模板中实现条件逻辑和循环。

ctrl_flow.html

<!DOCTYPE html>
<html>
<head><title>Welcome</title>
</head>
<body><!-- 条件语句 -->{% if user %}<p>Welcome, {{ user }}!</p>{% else %}<p>Please log in.</p>{% endif %}<!-- 循环语句 --><ul>{% for item in items %}<li>{{ item }}</li>{% endfor %}</ul>
</body>
</html>

app.py

@app.route('/ctrl_flow')
def ctrl_flow():# return render_template('ctrl_flow.html',user="Zhangsan")# return render_template('ctrl_flow.html')return render_template('ctrl_flow.html',user="Zhangsan",items=['apple','banana','orange'])

传了user
03.png

未传user和items
04.png

传了user和items
05.png

过滤器

过滤器用于在模板中格式化和处理变量数据。

filter.html

<!DOCTYPE html>
<html>
<head><title>Welcome</title>
</head>
<body>
<p>{{ name|capitalize }}</p>
<p>{{ price|round(2) }}</p>
</body>
</html>

app.py

@app.route('/filter')
def filter():return render_template('filter.html',name='wangwu',price=2.999)

过滤器的写法与shell中的管道一样都是用"|"来表示

格式: {{ 变量名|处理方法 }}

06.png

宏和模板包含

macros.html

{% macro render_item(item) %}<div><h3>{{ item.title }}</h3><p>{{ item.description }}</p></div>
{% endmacro %}

使用宏: macros_demo.html

{% from "macros.html" import render_item %}<h1>Items</h1>
{% for item in items %}{{ render_item(item) }}
{% endfor %}

app.py

@app.route('/macros')
def macros():# return render_template('macros_demo.html',items=['apple','banana','orange'])return render_template('macros_demo.html',items=[{"title":"apple","description":"苹果"},{"title":"banana","description":"香蕉"},{"title":"orange","description":"橘子"}])

变量不正确时的效果

07_1.png

正常的显示

07_2.png

安全性

security.html

<html>
<head> security </head>
<body>
<p>{{ user_input }}</p>
</body>
</html>
@app.route('/xss')
def xss():return render_template('security.html',user_input='<script> alert(1) </script>')

自动转义:Jinja2 默认会对模板中的变量进行自动转义,防止 XSS 攻击。

<script>标签不会被认为是html元素

08.png

模板上下文

视图函数中传递的变量成为模板的上下文,这些变量可以在模板中直接使用。

profile.html

<h1>{{ user.name }}</h1>
<p>Age: {{ user.age }}</p>

app.py

@app.route('/profile/<username>')
def profile(username):user = {'name': username, 'age': 25}return render_template('profile.html', user=user)

09.png

Demo

Flask

参考

  1. Flask模板渲染
http://www.dtcms.com/wzjs/415334.html

相关文章:

  • flask做的网站如何上传最大免费发布平台
  • 泉州app网站开发价格低网站目录
  • 如何做网站教程网络推广营销方法
  • 济南官网专业关键词排名优化软件
  • app和网站的区别是什么西安分类信息seo公司
  • 网站上的动态图怎么做百度关键词搜索查询
  • 设计师接单的网站官网seo优化
  • vc 做网站源码营销策划方案公司
  • 新浪网页版电脑版湖南好搜公司seo
  • 个人网站制作网站b2b商务平台
  • 石英石台面做网单有什么网站福州seo管理
  • 国家税务总局网站官网网址黄页88推广多少钱一年
  • 网站管理系统 免费衡水seo营销
  • 新野企业网站建设深圳疫情最新消息
  • 网站开发小程序开发百度高级搜索网址
  • 网页qq登陆保护杭州seo代理公司
  • 做网站怎么备案互联网营销推广
  • 做淘宝详情页的素材网站seo检测
  • 学校网站建设问卷调查对seo的理解
  • 深圳龙华的学校网站建设微信公众号运营
  • 郑州做网站zztuotian产品市场营销策划书
  • 遂宁网站建设百度链接提交入口
  • 个人域名能做网站吗宁海关键词优化怎么优化
  • 360网站卫士 真实ip网络推广公司运营
  • 自己做网站导航页网站优化公司哪家好
  • 如何做自适应网站网络营销推广策划的步骤
  • 网站推广明细报价表seo营销推广多少钱
  • 游戏开发工作室seo的概念是什么
  • 在线正能量网站地址链接免费搜索引擎排名优化程序
  • 网站介绍怎么写谷歌浏览器手机版下载