Flask学习笔记(二)

渲染模板

1.如何渲染模板

  • 模板在template文件夹下
  • flask中导入render_template函数
  • 然后在视图函数中使用render_template
    函数,注意:只需要填写模板名字(当该模板仅在template文件夹下)
    2.模板传参
    *构建一个字典,然后在render_template中用两个星号来引用
    以下是代码;
# index.py
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
   class Person(object):
       name = u'耕地'
       gender = u'男'
       age = 18
       
   p = Person()
   
   context = {
       'username' : u'知了课堂',
       'gender' : u'男',
       'age' : 20,
       'person' : p,
       'websites':{
           'baidu':'www.baidu.com',
           'google':'www.google.com'
       }
   }
   return render_template('index.html', **context)

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

#index.html
<!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>
    <p>用户名:{{ person.name }}</p>
    <p>性别:{{ person.gender }}</p>
    <p>年龄:{{ person.age }}</p>
    <hr>
    <p>百度:{{ websites['baidu'] }}</p>
    <p>谷歌:{{ websites['google'] }}</p>
</body>
</html>

过滤器(类似linux)

1.介绍与语法

  • 介绍:过滤器可以处理变量,把原始的变量经处理后再展示出来,作用对象是变量。
  • 语法:
#py
return render_template('index.html',avatar='https://avatar.csdn.net/8/D/7/1_wcs_152.jpg?1540658115')
#html
<img src="{{ avatar|default('https://avatar.csdn.net/0/2/5/3_accept1234.jpg')}}"></img>

2.default过滤器:如果当前变量不存在,这时候可以指定默认值,
3.length过滤器:求列表或者字符串或者字典或者元组的长度。
4. 常用过滤器

if判断句

*因为比较简单,直接上代码

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/<is_login>/')
def index(is_login):
   if is_login == '1':
       user = {
           'username': u'耕地',
           'age':18
       }
       return render_template('index.html', user = user)
   else:
       return render_template('index.html')



if __name__ == '__main__':
   app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% if user %}
        <a href="#">{{ user.username }}</a>
        <a href="#">注销</a>
    {% else %}
        <a href="#">登录</a>
        <a href="#">注册</a>
    {% endif %}

</body>
</html>

for循环遍历列表和字典

1.字典的遍历,语法同python一样,可以使用items() keys() values() iteritems() iterkeys() itervalues()

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    user = {
        'username': u'耕地',
        'age':18
    }
    return render_template('index.html', user = user)
    
if __name__ == '__main__':
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
   {% for k,v in user.items() %}
       <p>{{ k }}:{{ v }}</p>
   {% endfor %}
</body>
</html>

运行结果;
在d这里插入图片描述
2.列表的遍历
与python语法相同

#html
{% for website in websites %}
        <p>{{ website }}</p>
{% endfor %}

建表格

 books = [
        {
            'name': u'西游记',
            'author': u'耕地',
            'price': u'120'
        },
        {
            'name': u'三国',
            'author': u'兔子',
            'price': u'130'
        }
    ]
#html
<table>
    <thead>
        <th>书名</th>
        <th>作者</th>
        <th>价格</th>
    </thead>
    <tbody>
        {% for book in books %}
            <tr>
                <td>{{ book.name }}</td>
                <td>{{ book.author }}</td>
                <td>{{ book.price }}</td>
            </tr>
        {% endfor %}
    </tbody>
</table>

效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值