首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >flask系列三之Jinja2模板

flask系列三之Jinja2模板

作者头像
wfaceboss
发布于 2019-04-08 02:46:14
发布于 2019-04-08 02:46:14
1.7K00
代码可运行
举报
文章被收录于专栏:wfacebosswfaceboss
运行总次数:0
代码可运行

1、如何渲染模板

  • 模板在‘templates’文件夹下(htnl页面)
  • 从flask中导入render_template函数---渲染html模板
  • 在视图函数中,使用render_template 函数渲染模板。注意:只需要填写模板的名字,不需要填写templates这个文件夹的路径,若在templates下面建立文件夹,则需要填写路径名称。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.route('/')
def index():
    return render_template('index.html')

2、模板传参

(1)如果只有一个或者少量参数,直接在render_template函数中添加关键字参数就可以了。

(2)如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中, 使用两个星号,把字典转换成关键参数传递进去,这样的代码更方便管理和使用。

(1)变量语法

在HTML文件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{{ params }}
(2)较少的参数(直接传参数)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<p>你好:{{ username }}</p>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.route('/')
def index():
    return render_template('index.html',username='你好') # 模板文件中只有一个变量,直接把参数传进去
(3)很多的参数(特殊的方法传参)

(1)如果只有一个或者少量参数,直接在render_template函数中添加关键字参数就可以了。

(2)如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中,使用两个星号,把字典转换成关键参数传递进去,这样的代码更方便管理和使用。

index.html中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>这是一个模板文件</p>
    <p>用户名:{{ username }}</p>
    <p>年龄:{{ age }}</p>
    <p>性别:{{ gender }}</p>
</body>
</html>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    context = {
        'username' : '站长',
        'age' : '18',
        'gender' : '男'
    }
    return render_template('index.html' , **context) # 定义一个字典,双星号把字典转换成关键参数传递进去

if __name__ == '__main__':
    app.run(debug=True)
(4)模板中访问模型(类)中的属性和访问字典中的元素
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
访问模型中的属性或者是字典,可以通过{{params.property}}的形式,或者是使用{{params['age']}}

index.html中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>这是一个模板文件</p>
    <p>用户名:{{ username }}</p>
    <p>年龄:{{ age }}</p>
    <p>性别:{{ gender }}</p>
    <hr>
    <p>访问模型(类)</p>
    <p>用户名:{{ person['name'] }}</p>
    <p>年龄:{{ person.age }}</p>

    <hr>
    <p>访问字典</p>
    <p>百度:{{ websites.baidu }}</p>
    <p>谷歌:{{ websites.google }}</p>
</body>
</html>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    # 定义一个类
    class Person(object):
        name = '老头'
        age = 22

    p = Person() # 实例化对象

    context = {
        'username' : '站长',
        'age' : '18',
        'gender' : '男',
        'person' : p,  # 把模型对象作为参数传进去
        # 将一个字典嵌套传参数进去
        'websites' : {
            'baidu' : 'www.baidu.com',
            'google' : 'www.google.com'
        }
    }
    return render_template('index.html' , **context) # 定义一个字典,双星号把字典转换成关键参数传递进去

if __name__ == '__main__':
    app.run(debug=True)
代码语言:javascript
代码运行次数:0
运行
复制

3、过滤器

过滤器简单理解:

例如:过滤器的作用就是,如果有头像就显示头像,没有头像就显示默认的头像(无头像)

过滤器的作用对象是变量

(1)语法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{{ avatar|default('xxx') }}
(2)default过滤器

实例一(没有过滤器): 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#encoding: utf-8
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html', avatar='http://avatar.csdn.net/9/0/4/3_ly123963.jpg')

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

index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>过滤器模板文件</p>

    <img src="{{ avatar }}">
</body>
</html>

实例二(加上过滤器):

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

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html') # 后端不上传图片,前端将加载默认的图片

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

前端加上过滤器之后。  index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>过滤器模板文件</p>

    <img src="{{ avatar | default('http://noavatar.csdn.net/B/3/F/3_lighting_miaoxingren.jpg') }}">
</body>
</html>
(3)length过滤器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 length过滤器主要用于求列表或者字符串或者字典或者元组的长度。比如统计一篇文章评论的总数,一般都是使用过滤器完成的。 
实例: 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    # 定义一个评论列表
    comments = [
        {
            'user' : '站长',
            'content' : u'xxxxxxxxxxxx'
        },
        {
            'user' : '你猜',
            'content' : u'yxyxyxyxyxy'
        },
        {
            'user' : '船长杰克',
            'content' : u'tttttttmtmtmtmtd'
        }
    ]
    return render_template('index.html',comments=comments)

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

index.html中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <p>过滤器模板文件</p>
    <hr>
    <p>评论数:({{ comments|length }}</p>
    <ul>
        {% for comment in comments %}
            <li>
                <a href="#">{{ comment.user }}</a>
                <p href="#">{{ comment.content }}</p>
            </li>
        {% endfor %}
    </ul>
</body>
</html>
(4)一些常用的过滤器
代码语言:javascript
代码运行次数:0
运行
复制
  • abs(value):返回一个数值的绝对值。示例:-1|abs
  • default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。示例:name|default(‘xiaotuo’)——如果name不存在,则会使用xiaotuo来替代。boolean=False默认是在只有这个变量为undefined的时候才会使用default中的值,如果想使用python的形式判断是否为false,则可以传递boolean=true。也可以使用or来替换。
  • escape(value)或e:转义字符,会将<、>等符号转义成HTML中的符号。显例:content|escape或content|e。
  • first(value):返回一个序列的第一个元素。示例:names|first
  • format(value,*arags,**kwargs):格式化字符串。比如:{{ "%s" - "%s"|format('Hello?',"Foo!") }}将输出:Helloo? - Foo!
  • last(value):返回一个序列的最后一个元素。示例:names|last。
  • length(value):返回一个序列或者字典的长度。示例:names|length。
  • join(value,d=u”):将一个序列用d这个参数的值拼接成字符串。
  • safe(value):如果开启了全局转义,那么safe过滤器会将变量关掉转义。示例:content_html|safe。
  • int(value):将值转换为int类型。
  • float(value):将值转换为float类型。
  • lower(value):将字符串转换为小写。
  • upper(value):将字符串转换为小写。
  • replace(value,old,new): 替换将old替换为new的字符串。
  • truncate(value,length=255,killwords=False):截取length长度的字符串。
  • striptags(value):删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格。
  • trim:截取字符串前面和后面的空白字符。
  • string(value):将变量转换成字符串。
  • wordcount(s):计算一个长字符串中单词的个数。
代码语言:javascript
代码运行次数:0
运行
复制

4、if判断

(1)语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% if xxx %}

{% else %}

{% endif %}

5、for循环遍历字典

1. 字典的遍历
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.route('/')
def index():
    # 定义一个字典
    user = {
        'username' : u'站长',
        'age' : 22
    }
    return render_template('index.html',user=user)

index.html中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% for k,v in user.items() %}
    <p>{{ k }}:{{ v }}</p>
{% endfor %}

 语法和python一样,可以使用items()keys()values()iteritems()iterkeys()itervalues()

2.列表的遍历
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for遍历列表
@app.route('/')
def index():
    websites = ['www.baidu.com','www.google.com'] # 定义一个列表
    return render_template('index.html',websites=websites)

index.html中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% for website in websites %}
    <p>{{ website }}</p>
{% endfor %}

6、继承和block

(1)作用:可以把一些公共的代码放在父模板中,避免写重复的代码

1.语法

父模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
    {% block head %}{% endblock %}
</head>
    <div>
        <h1>其他照旧</h1>
    </div>

    {% block MainContainer %}{% endblock %}
<body>
</body>
</html>

子模板:

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

{% block title %}
    名字
{% endblock %}

{% block head %}
    <style>
        不同的风格文件
    </style>
    <link rel="stylesheet" href="">
    <script>不同的脚本文件</script>
{% endblock %}

{% block MainContainer %}
    <h1>这里是写具体内容的地方</h1>
{% endblock %}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selfprojectName.py中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask,render_template

app = Flask(__name__)

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

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


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

base.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .nav-header {
            background: #3a3a3a;
            height: 65px;
        }
        ul{
            overflow: hidden;
        }
        ul li{
            float: left;
            list-style: none;
            padding: 0 10px;
            line-height: 65px;
        }
        ul li a{
            color: #ffffff;
        }
    </style>
</head>
<body>
    <div class="nav-header">
        <ul>
            <li><a href="#">首页</a></li>
            <li><a href="#">论坛</a> </li>
        </ul>
    </div>

    {% block MainContainer %}{% endblock %}
</body>
</html>

index.html 中

使用这个模板之后,所有的代码必须写到block里面去!

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

{% block MainContainer %}
    <p>这里是首页</p>
{% endblock %}

login.html中

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

{% block MainContainer %}
    <p>这里是注册页面</p>
{% endblock %}

五、URL链接和加载静态文件

通用语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
url_for('static',filename='路径')
1.url跳转
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 视图函数中:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.route('/login/)
def login_function():
    return render_template('login.html')

方法一:  html文件里面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a href="/login/">点击我</a>

方法二(推荐):

html文件里面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a href="{{ url_for('login_function') }}">点击我</a>
2.加载静态文件

方法一:

html文件里面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel="stylesheet" href="static/css/index.css">

方法二(推荐):

html文件里面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel="stylesheet" href="{{ url_for('static',filename=''css/index.css) }}">

加载图片方法(推荐):

html文件里面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<img src="{{ url_for('static',filename='images/logo.png') }}">

加载Js文件方法(推荐):

html文件里面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="{{ url_for('static',filename='js/index.js') }}">
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
手把手教你使用CNN进行交通标志识别(已开源)
在本文中,使用Python编程语言和库Keras和OpenCV建立CNN模型,成功地对交通标志分类器进行分类,准确率达96%。开发了一款交通标志识别应用程序,该应用程序具有图片识别和网络摄像头实时识别两种工作方式。
小白学视觉
2022/12/28
3.4K0
手把手教你使用CNN进行交通标志识别(已开源)
如何使用900万张开放图像训练600类图片分类器
如果你正在尝试构建一个图片分类器,但是需要训练集,你最好的选择是查看 Google Open Images 。
AI研习社
2019/07/15
1.1K0
如何使用900万张开放图像训练600类图片分类器
手把手搭建一个【卷积神经网络】
本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对10种常见的物体进行识别分类;使用到CIFAR10数据集,它包含10 类,即:“飞机”,“汽车”,“鸟”,“猫”,“鹿”, “狗”,“青蛙”,“马”,“船”,“卡车” ;共 60000 张彩色图片;通过搭建和训练卷积神经网络模型,对图像进行分类,能识别出图像是“汽车”,或“鸟”,还是其它。
一颗小树x
2021/05/12
1.5K0
手把手搭建一个【卷积神经网络】
自动驾驶汽车的交通标志识别
由于特斯拉等公司在电动汽车自动化方面的努力,无人驾驶汽车正变得非常受欢迎。为了成为5级自动驾驶汽车,这些汽车必须正确识别交通标志并遵守交通规则。在识别出这些交通标志之后,它还应该能够适当地做出正确的决定。
代码医生工作室
2020/02/21
1.6K0
自动驾驶汽车的交通标志识别
使用Python实现深度学习模型:智能垃圾分类与回收系统
智能垃圾分类与回收系统通过深度学习技术,可以自动识别和分类不同类型的垃圾,提高垃圾回收效率,减少环境污染。本文将介绍如何使用Python和深度学习技术来实现智能垃圾分类与回收系统。
Echo_Wish
2024/08/20
5420
使用Python实现深度学习模型:智能垃圾分类与回收系统
使用Python实现深度学习模型:智能身份验证与防伪
在当今数字化时代,身份验证和防伪技术变得尤为重要。深度学习作为人工智能的一个重要分支,提供了强大的工具来解决这些问题。本文将介绍如何使用Python实现一个基于深度学习的智能身份验证与防伪系统,详细讲解其基本原理和实现步骤。
Echo_Wish
2024/10/08
2580
使用Python实现深度学习模型:智能身份验证与防伪
独家 | 10分钟搭建你的第一个图像识别模型(附步骤、代码)
本文介绍了图像识别的深度学习模型的建立过程,通过陈述实际比赛的问题、介绍模型框架和展示解决方案代码,为初学者提供了解决图像识别问题的基础框架。
数据派THU
2019/03/08
1.7K0
独家 | 10分钟搭建你的第一个图像识别模型(附步骤、代码)
使用Python实现深度学习模型:智能安防监控与异常检测
在这篇教程中,我们将构建一个深度学习模型,用于智能安防监控和异常检测。我们将使用TensorFlow和Keras库来实现这一目标。通过这个教程,你将学会如何处理视频数据、构建和训练模型,并将模型应用于实际的异常检测任务。
Echo_Wish
2024/07/27
2950
使用Python实现深度学习模型:智能安防监控与异常检测
Transformers 4.37 中文文档(四)
www.youtube-nocookie.com/embed/KWwzcmG98Ds
ApacheCN_飞龙
2024/06/26
5230
Transformers 4.37 中文文档(四)
使用卷积神经网络预防疲劳驾驶事故
美国国家公路交通安全管理局估计,每年有 91,000 起车祸涉及疲劳驾驶的司机,造成约50,000 人受伤和近 800 人死亡。此外,每 24 名成年司机中就有 1 人报告在过去 30 天内在驾驶时睡着了。研究甚至发现,超过20个小时不睡觉相当于血液酒精浓度为0.08%——美国的法律规定的上限。
小白学视觉
2021/10/14
5110
基于卷积神经网络的人脸识别[通俗易懂]
利用opencv获取人脸,采集人脸数据,将收集到的人脸数据加载到内存,搭建属于自己的卷积神经网络,并用人脸数据训练自己的网络,将训练好的网络保存成模型,最后再用opencv获取实时人脸用先前训练好的模型来识别人脸。
全栈程序员站长
2022/09/06
1.3K0
基于卷积神经网络的人脸识别[通俗易懂]
探究肺癌患者的CT图像的图像特征并构建一个诊断模型
准备工作: 1.准备肺癌或非肺癌每个各10张图,在本地创建一个名为“data”的文件夹,用于存放数据集。在“data”文件夹下创建两个子文件夹,分别命名为“cancer”和“non_cancer”,用于存放肺癌和非肺癌图像。将10张肺癌图像命名为“cancer_1.jpg”到“cancer_10.jpg”,并将它们放入“cancer”文件夹中。将10张非肺癌图像命名为“non_cancer_1.jpg”到“non_cancer_10.jpg”,并将它们放入“non_cancer”文件夹中。
未名编程
2024/10/12
1960
探究肺癌患者的CT图像的图像特征并构建一个诊断模型
基于 Keras 和 dlib 的人脸识别实践
这次的实践是基于很小的数据集,搭建的系统也比较粗糙,只是个toy implementation。主要用来练手和熟悉流程的。
caoqi95
2019/03/27
1.2K0
基于 Keras 和 dlib 的人脸识别实践
“花朵分类“ 手把手搭建【卷积神经网络】
本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对几种常见的花朵进行识别分类;
一颗小树x
2021/05/13
2.1K0
“花朵分类“ 手把手搭建【卷积神经网络】
使用Python实现图像分类与识别模型
图像分类与识别是计算机视觉中的重要任务,它可以帮助我们自动识别图像中的对象、场景或者特征。在本文中,我们将介绍图像分类与识别的基本原理和常见的实现方法,并使用Python来实现这些模型。
Echo_Wish
2024/04/23
1.1K0
使用Python实现深度学习模型:智能垃圾分类与环境保护
智能垃圾分类是实现环境保护和资源回收的重要手段。通过深度学习技术,我们可以自动识别和分类垃圾,从而提高垃圾处理的效率。本文将介绍如何使用Python和深度学习库TensorFlow与Keras来构建一个简单的垃圾分类模型。
Echo_Wish
2024/08/07
3510
使用Python实现深度学习模型:智能垃圾分类与环境保护
Google全新AI实战课发布:从原理到代码,手把手带你入门机器学习
安妮 岳排槐 发自 凹非寺 量子位 出品 | 公众号 QbitAI 如果你的心里只有一件事。 请问:是不是学习? Google希望你是,而且还准备扶上马,再送一程。 所以今天一早,大礼包又来了。 手把手教你 今年春天,Google发布了机器学习速成课,英文简称MLCC。而且这套基本全程都有中文的课程,还是完全免费的。 这还不够。 Google觉得光学理论还不够,必须教你理论与实战相结合。 所谓:知行合一。 于是,Google发布了最新的一套课程:
量子位
2018/07/20
7550
独家 | 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)
翻译:吴金笛 校对:郑滋 本文约4600字,建议阅读12分钟。 本文明确了多标签图像分类的概念,并讲解了如何构建多标签图像分类模型。 介绍 你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情
数据派THU
2019/05/17
1.9K0
独家 | 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)
使用Python实现深度学习模型:视频处理与动作识别
视频处理与动作识别是计算机视觉中的重要任务,广泛应用于监控系统、智能家居、体育分析等领域。通过使用Python和深度学习技术,我们可以构建一个简单的动作识别系统。本文将介绍如何使用Python实现视频处理与动作识别,并提供详细的代码示例。
Echo_Wish
2024/07/16
7510
使用Python实现深度学习模型:视频处理与动作识别
小狗分类器,你家的狗子是个什么狗?
这就是所谓的「机器学习」,让机器自己去“学习”。我们今天要做的这个分类任务,是一个“监督学习”的过程。
小小詹同学
2019/08/28
5590
小狗分类器,你家的狗子是个什么狗?
推荐阅读
相关推荐
手把手教你使用CNN进行交通标志识别(已开源)
更多 >
LV.0
深圳魔图互联科技有限公司算法工程师
目录
  • 1、如何渲染模板
  • 2、模板传参
    • (1)变量语法
    • (2)较少的参数(直接传参数)
    • (3)很多的参数(特殊的方法传参)
    • (4)模板中访问模型(类)中的属性和访问字典中的元素
  • 3、过滤器
    • (1)语法
    • (2)default过滤器
    • (3)length过滤器
    • (4)一些常用的过滤器
  • 4、if判断
  • 5、for循环遍历字典
    • 1. 字典的遍历
    • 2.列表的遍历
  • 6、继承和block
    • 1.语法
  • 五、URL链接和加载静态文件
    • 1.url跳转
    • 2.加载静态文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档