Flask第二天

Flask 入门学习

入门学习途径来源于 http://helloflask.com/tutorial/

url构建

视图函数的名字是自由定义的,和 URL 规则无关。和定义其他函数或变量一样,只需要让它表达出所要处理页面的含义即可。
除此之外,它还有一个重要的作用:作为代表某个路由的端点(endpoint),同时用来生成 URL。对于程序内的 URL,为了避免手写,Flask 提供了一个 url_for函数来生成 URL,它接受的第一个参数就是端点值,默认为视图函数的名称:


from flask import url_for, escape

@app.route('/')
def hello():
    return 'Hello'

@app.route('/user/<name>')
def user_page(name):
    return 'User: %s' % escape(name)

@app.route('/test')
def test_url_for():
    # 下面是一些调用示例(请在命令行窗口查看输出的 URL):
    print(url_for('hello'))  # 输出:/
    # 注意下面两个调用是如何生成包含 URL 变量的 URL 的
    print(url_for('user_page', name='greyli'))  # 输出:/user/greyli
    print(url_for('user_page', name='peter'))  # 输出:/user/peter
    print(url_for('test_url_for'))  # 输出:/test
    # 下面这个调用传入了多余的关键字参数,它们会被作为查询字符串附加到 URL 后面。
    print(url_for('test_url_for', num=2))  # 输出:/test?num=2
    return 'Test page'

templates模板传值

@app.route('/movie/')
def movie():
    name = 'Marvin_z'
    movies = [
        {'title': 'My Neighbor Totoro', 'year': '1988'},
        {'title': 'Dead Poets Society', 'year': '1989'},
        {'title': 'A Perfect World', 'year': '1993'},
        {'title': 'Leon', 'year': '1994'},
        {'title': 'Mahjong', 'year': '1996'},
        {'title': 'Swallowtail Butterfly', 'year': '1996'},
        {'title': 'King of Comedy', 'year': '1999'},
        {'title': 'Devils on the Doorstep', 'year': '1999'},
        {'title': 'WALL-E', 'year': '2008'},
        {'title': 'The Pork of Music', 'year': '2012'},
    ]
    mydict = {
        'name': 'marvin_z',
        'age': 21,
        'gender': 'male'
    }
    # return render_template('index.html', name=name, movies=movies)    # flask中采用 kwargs
    return render_template('index.html', **{'name': name, 'movies': movies, "mydict": mydict})  # django中模板传值采用字典的形式



<ul>
    <p>hi {{ name }}</p>
    {% for movie in movies %}
        <li>{{ movie.title }} --- {{ movie.year }}</li>
    {% endfor %}
    <p>一共{{ movies|length }}条数据</p> {# movies |length  采用过滤器获取movies的长度#}
    {% for k,v in mydict.items() %}
        <p>{{ k }}  --- {{ v }}</p>
    {% endfor %}
</ul>

jinja2语法定界符

  • {{ ... }}用来标记变量
  • {% for foo in foos %}... {% endfor %} for 循环
  • {# ... #} 用来写注释
  • {% if request %}... {% elif %}... {% else %}... {% endif %} if结构

提示 访问 http://jinja.pocoo.org/docs/2.10/templates/#list-of-builtin-filters 查看所有可用的过滤器。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值