首页 > 其他分享 >flask-study-003

flask-study-003

时间:2024-01-16 14:24:00浏览次数:30  
标签:comment __ name flask study 003 macros html app

本篇博客记录flask使用的jinja2模板使用方法

1. 模板的基本使用

app.py如下:

from flask import Flask, render_template, redirect

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/')
def index():
    name = "liwl"
    return render_template('index.html', name=name)

@app.route('/index')
def newindex():
    return redirect('/')

@app.route('/user/<name>')
def user(name):
    return f"hello,{name}"

if __name__ == "__main__":
        app.run()

templates/index.html如下:

<h1>
{% for i in range(10) %}
hello, I am {{ name }}
<br>
{% endfor %}
</h1>

index.html里面的name是占位符号,通过{{ name }} 来占位

语句通过:{% %}来表示,同时需要 {% endfor %}结束

{% for %}{% endfor %},{% if %}{% else %}

<h1>
hello, I{% if name %} am {{ name }}{% else %},stranger{% endif %}
</h1>

2. 基本语法

2.1 变量

{{ name }}结构表示一个变量,是一种特殊的占位符。{{ }}符号内部的字符串是python对象,由render_template函数的参数指定。

jinja2能够识别所有类型的变量,包括列表,字典,对象。

变量的值,可以通过过滤器修改。比如hello,{{ name | capitalize }},将name的首字母大写。

2.2 控制结构

条件语句

{% if xxx %}
	xxx
{% else %}
	xxx
{% endif %}

循环语句

{% for xxx in xxx %}
	xx
{% endfor %}

2.3 宏

类似于python函数。把宏定义在macros.html,在其他需要宏的html中,通过{% import 'macros.html' as macros %}

比如定义一个宏

{% macro render_comment(comment) %}
	<li>{{ comment }}</li>
{% endmacro %}

本文件使用宏:

<ul>
    {% for comment in comments %}
    	{{ render_comment(comment)}}
    {%endfor%}
</ul>

其他文件使用宏:

{% import 'macros.html' as macros %}
<ul>
    {% for comment in comments %}
    	{{macros.render_commnet(comment)}}
    {% endfor %}
</ul>

2.4 模板的复用

方式一:{% include 'common.html' %},这种方式能够使用common.html里面定义的内容

方式二:{% extends 'base.html' %},这种方式继承了base.html内容

extends继承的base.html,3个区块被重新定义。衍生模板同名区块覆盖基模板的同名区块。

标签:comment,__,name,flask,study,003,macros,html,app
From: https://www.cnblogs.com/liwanliangblog/p/17967561

相关文章

  • flask-study-002
    本篇主要记录flask的模板使用1.模板基本使用通过render_template函数进行模板的渲染在app.py同级目录下,创建templates目录,用于存放需要flask渲染的模板fromflaskimportFlask,render_templateapp=Flask(__name__)app.config['DEBUG'][email protected]('/')def......
  • flask-study-001
    本篇博客主要记录python3.6使用flask开发代码托管:https://gitee.com/liwl1991/my-flask1.pip3配置国内源终端执行:pip3configsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple查看:pip3configlist2.安装flask环境终端执行:pip3installflask3.创建app.......
  • P1003题解
    简单模拟题。思路枚举每一个地毯,因为后面的会覆盖前面的,所以从正序枚举。如果要求的点的坐标在当前地毯上,则将答案赋值为当前地毯编号。最后输出答案。那如果这个点没有地毯呢?答案初始设为\(-1\),这样没有地毯覆盖的话,答案不会改变,这样输出答案就会是\(-1\)。注意:记得赋初......
  • flask学习002
    本篇学习实践flask的模板渲染导入render_template模板在app.py同级目录下,创建templates目录,创建user.html<h1>hello,{{name}}我是模板内容</h1>目录结构:.├──app.py└──templates└──user.htmlapp.py代码修改如下:fromflaskimportFlask,render......
  • flask学习001
    1.pip3配置国内源(阿里云)pip3configsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple查看:pip3configlist2.安装flask环境pip3installflask3.创建app.pyfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defindex():return"......
  • flask session 伪造
    flasksession伪造一、session的作用由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求必须实现有状态,而session机制实现的就是这个功能。用户第一次请求后,将产生的状态信息保存在sessio......
  • PAT乙级 P1003 我要通过!
    题目链接:由于需要统计字符串中各字符的出现次数,考虑使用\(\rmmap\)来进行统计。字符串中只有\(\rmP,A,T\)三种字母\(\longrightarrow\rmmap.size()==3\)题目仅给出了几条规则,因此我们将可能正确的结果罗列出来,看看能否找到一些规律。分析:任意形如xPATx的字符串都可以......
  • flask介绍
    1.flask介绍Flask诞生于2010年,是Arminronacher用python语言基于Werkzeug工具箱编写的轻量级web开发框架Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用Flask......
  • Python Flask Class类默认方法(函数)
    前言全局说明Class类默认方法(函数)一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、Class类默认方法(函数)默认方法(函数)说明备注init类被调用后,自动执行......
  • Python Flask 模块安装、引用模块、启动Web服务方法
    前言全局说明模块安装、引用模块、启动服务一、安装flask模块官方源:pip3installflask==2.3.2国内源:pip3installflask==2.3.2-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com以上二选一,哪个安装快用哪个flask安装时间2023-11更多国内源:......