男女做受网站,服装公司简介,网站开发业务介绍,公司网站备案是什么意思第4章#xff1a;模板渲染
4.1 模板的概念和使用
模板是一种用于生成输出的方法#xff0c;它允许您将Python代码和HTML标记混合在一起#xff0c;从而创建动态网页。
示例代码#xff1a;基本模板
!-- templates/home.html --
!DOCTYPE html
html…第4章模板渲染
4.1 模板的概念和使用
模板是一种用于生成输出的方法它允许您将Python代码和HTML标记混合在一起从而创建动态网页。
示例代码基本模板
!-- templates/home.html --
!DOCTYPE html
html
headtitle{{ title }}/title
/head
bodyh1{{ header }}/h1p{{ content }}/p
/body
/html在Flask中您可以使用render_template函数来渲染模板。
示例代码渲染模板
from flask import render_templateapp.route(/)
def home():title Home Pageheader Welcome to My Websitecontent This is the home page.return render_template(home.html, titletitle, headerheader, contentcontent)4.2 Jinja2模板引擎介绍
Jinja2是Flask的默认模板引擎它提供了强大的模板语言功能。
示例代码使用Jinja2模板语法
!-- templates/about.html --
{% if user %}pWelcome, {{ user.username }}!/p
{% else %}pWelcome, guest!/p
{% endif %}4.3 模板继承和包含
模板继承允许您定义一个基础模板其他模板可以继承这个模板并扩展它。
示例代码基础模板
!-- templates/base.html --
!DOCTYPE html
html
headtitle{% block title %}My Website{% endblock %}/title
/head
bodyheader{% block header %}Default Header{% endblock %}/headermain{% block content %}{% endblock %}/mainfooter{% block footer %}Default Footer{% endblock %}/footer
/body
/html示例代码继承基础模板
!-- templates/about.html --
{% extends base.html %}
{% block header %}About Us{% endblock %}
{% block content %}pThis is the about page./p
{% endblock %}模板包含允许您在模板中包含其他模板片段。
示例代码模板包含
!-- templates/sidebar.html --
div classsidebarh3Sidebar/h3ullia href/Home/a/lilia href/aboutAbout/a/li/ul
/div!-- templates/base.html --
...
body{% include sidebar.html %}main{% block content %}{% endblock %}/main
...4.4 模板变量和过滤器
模板变量用于在模板中传递数据而过滤器则用于修改变量的显示方式。
示例代码使用模板变量
!-- templates/user_profile.html --
pUsername: {{ user.username }}/p
pMember since: {{ user.member_since|date(Y-m-d) }}/p示例代码自定义过滤器
from flask import Flaskapp Flask(__name)app.template_filter()
def capitalize_sentence(s):return s[0].upper() s[1:].lower()# 在模板中使用自定义过滤器
p{{ user.bio|capitalize_sentence }}/p4.5 总结
本章介绍了模板渲染的概念和Jinja2模板引擎的使用包括模板继承、包含以及变量和过滤器的使用。