首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flask架站基础篇(五)----Jinja2模板

Flask架站基础篇(五)----Jinja2模板

作者头像
喵叔
发布于 2020-09-08 07:58:34
发布于 2020-09-08 07:58:34
88200
代码可运行
举报
文章被收录于专栏:喵叔's 专栏喵叔's 专栏
运行总次数:0
代码可运行
零、使用模板
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#引入render_template
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    #调用render_template,传递模板名称
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)
一、视图函数给模板传参

方法一:如果参数较少的情况下可使用如下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    #给render_template传递模板页所需的参数
    return render_template('index.html',username='admin')

if __name__ == '__main__':
    app.run(debug=True)

方法二:如果参数较多使用如下方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    context={
        'username':'admin',
        'gender':'男',
        'age':18
    }
    #给render_template 传递一个字典/列表/模型
    return render_template('index.html',**context)

if __name__ == '__main__':
    app.run(debug=True)

模板页接收方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    这是HTML模板中出现的文字
    <p>用户名:{{ username }}</p>
    <p>性别:{{ gender }}</p>
    <p>年龄:{{ age }}</p>
</body>
</html>
二、模板访问模型和字典

方法如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    class Person(object):
        name = 'admin123'
        age = 18

    p = Person();
    #将模型传递给字典
    context = {
        'username': 'admin',
        'gender': '男',
        'age': 18,
        'person': p,
        'websites': {
            'baidu': 'baidu.com'
        }
    }
    return render_template('index.html', **context)

if __name__ == '__main__':
    app.run(debug=True)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    这是HTML模板中出现的文字
    <p>用户名:{{ username }}</p>
    <p>性别:{{ gender }}</p>
    <p>年龄:{{ age }}</p>
    <hr>
    <!--调用字典/模型,都可以用以下的方法
    也可以使用如:person['name']这样的方法-->
    <p>用户名:{{ person.name }}</p>
    <p>年龄:{{ person.age }}</p>
    <p>网站:{{ websites.baidu }}</p>
</body>
</html>
三、模板页使用python代码

语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% python代码开始 %}
html代码
{% python代码结束 %}

示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% if user.age>18%}
        <a>我是{{user.name}}</a>
    {% endif %}
</body>
</html>
四、过滤器

过滤器作用于模板中的变量 语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{{ 变量 | 过滤器名称 }}
五、母版页

在“templates”文件夹下创建一个html文件作为母版页,在使用该页面的html文件中引入该文件,引入方式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% extends 'base.html' %}

在子模版中自定义内容方法: 1. 在母版页中使用block,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% block main %}
{% endblock %}
  1. 在子模版页中使用模板也定义的block,代码如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% block main %}
    子模版自定义内容
{% endblock %}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/01/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
flask框架(二)配套代码
1、cookie.py """ - 解释: 用来保持服务器和浏览器交互的状态的, 由服务器设置,存储在浏览器 - 作用: 用来做广告推送 - cookie的设置和获取 - 设置cookie: response.set_cookie(key,value,max_age) - max_age: 表示cookie在浏览器的存储时间,单位是秒 - 获取cookie: request.cookies.get("key") """ from flask import Flask, make_res
小闫同学啊
2019/07/18
1.4K0
flask第二十三篇——模板【5】过滤器
过滤器——format格式化 flaskDemo.py # coding: utf-8 from flask import Flask, render_template import flask app = Flask(__name__) # type: Flask app.debug = True @app.route('/') def login(): context = { "user": { "name": "Warren",
孟船长
2018/05/21
5130
小白学Flask第九天| 看看模板的那些事(一)
在Flask当中的模板被称为Jinja2模板,那么我们怎么去使用模板呢?大家可以看到下面两块代码:
Python进击者
2019/09/19
6060
小白学Flask第九天| 看看模板的那些事(一)
flask第二十五篇——控制语句
先和大家强调一个发邮件的问题 # coding: utf-8 import smtplib from email.mime.text import MIMEText mail_host = 'smtp.163.com' receivers = ['31abc@qq.com','72abc@qq.com'] password = '授权码' sender = 'warrior_meng08@163.com' msg = MIMEText('Python 发邮件', 'plain', 'utf-8') ms
孟船长
2018/05/21
5420
flask第二十二篇——模板【4】过滤器
寒风萧萧 飞雪飘零 长路漫漫 踏歌而行 回首 望星辰 往事 如烟云 犹记别离时 徒留雪中情 雪中情 雪中情 雪中梦未醒 痴情换得一生泪影 雪中行 雪中行 雪中我独行 挥尽多少英雄豪情 唯有与你同行 与你同行才能把梦追寻 寒风萧萧 飞雪飘零 长路漫漫 踏歌而行 回首 望星辰 往事 如烟云 犹记别离时 徒留雪中情 雪中情 雪中情 雪中梦未醒 痴情换得一生泪影 雪中行 雪中行 雪中我独行 挥尽多少英雄豪情 唯有与你同行
孟船长
2018/05/21
6590
flask第十八篇——模板【2】
上一节我们介绍了模板的基本使用方法,现在我们想一个问题,如果把index.html放到template文件夹下面的文件夹该怎么办呢?其实很容易,当文件夹结构如下图所示时: 我们只需要修改render_
孟船长
2018/05/21
5850
2.Flask jinjia2模板
      过滤器本质上就是一个函数,如果在模板中调用这个过滤器,那么就会将这个变量的值作为第一个参数传给过滤器这个函数,
zhang_derek
2019/02/13
1K0
2.Flask jinjia2模板
大白话说Python+Flask入门(二)
笔者技术真的很一般,也许是只靠着笨鸟先飞的这种傻瓜坚持,才能侥幸的在互联网行业生存下来吧!
软件测试君
2023/11/22
3010
大白话说Python+Flask入门(二)
flask第十九篇——模板【3】
今天我们继续模板的知识,现在我们增加字典的复杂度,这个时候在render_template第二个参数可以传**title,以后我们会用**context代替原来的title=title。 # coding: utf-8 from flask import Flask, render_template app = Flask(__name__) # type: Flask app.debug = True @app.route('/') def hello_world(): title =
孟船长
2018/05/21
5270
flask第二十篇——模板【3】
现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index.html中给url_for传next,最后在login.html函数中通过{{ next }}传值。代码如下: rendertemplateDemo.py文件 # coding: utf-8 from flask import Flask, render_template import flask app = Flask(__name
孟船长
2018/05/21
5040
Flask学习笔记之模板(一)
之前的视图函数返回的都是字符串,这样是很不利于网站建设,大家都知道,我们都网页构造三大元素(html,css,js),那这些数据如何通过视图函数返回了?答案就是templates文件。
罗罗攀
2018/11/21
4710
flask系列三之Jinja2模板
(1)如果只有一个或者少量参数,直接在render_template函数中添加关键字参数就可以了。
wfaceboss
2019/04/08
1.7K0
看完这篇文章还能不懂Flask这种Web框架吗?
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
IT派
2018/07/30
5870
Flask入门:从基础到实践
在Web开发领域,选择适合项目需求的框架至关重要。Flask,一个轻量级的Python Web框架,以其简洁、灵活和易扩展的特性而备受开发者青睐。本文将介绍如何使用Flask迅速搭建一个轻量级的Web应用,并通过实例代码详细解析关键步骤。
一键难忘
2024/04/20
6280
Flask路由基础
Flask是较为热门的用python编写的Web应用框架,它能够根据路由自动将请求分配给对应的函数,使得程序员能够专注于功能,而不是繁琐的底层协议
DearXuan
2022/02/25
3270
Flask路由基础
Flask框架web开发:零基础入门 原
Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用。因此Flask框架是Python新手快速开始web开发最好的选择,此外,使用Flask框架的另一个好处在于你可以非常轻松地将基于Python的机器学习算法或数据分析算法集成到web应用中。
笔阁
2018/12/25
2K1
Flask(8)- jinja2 模板入门
如果用户已经登录:变量 login 为真、变量 name 为 tom,模板被渲染成如下的 html 文件
小菠萝测试笔记
2021/07/14
1.5K0
Flask(8)- jinja2 模板入门
Flask 框架基础知识笔记
内置过滤器: tojson配合js使用,注意这里要避免HTML自动转义,所以加上safe过滤器
王 瑞
2022/12/28
2.5K0
Flask 框架:运用Ajax实现数据交互
使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载刷新整个页面,这使得程序能够更快地回应用户的操作,如下笔记将简单介绍使用AJAX如何实现前后端数据通信。
王 瑞
2022/12/28
1.3K0
Python3+Flask初学教程
W3Cschool:https://www.w3cschool.cn/flask/
静谧星空TEL
2021/04/27
9320
Python3+Flask初学教程
相关推荐
flask框架(二)配套代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档