美文网首页框架
《Flask Web开发》 读书笔记

《Flask Web开发》 读书笔记

作者: fat___lin | 来源:发表于2019-02-26 15:49 被阅读23次

github随书demo

  • 处理 URL 和函数之间关系的程序称为路由
  • Flask 使用上下文临时把某些对象 变为全局可访问(避免大量可有可无的参数把视图函数弄得一团糟)

Flask 中有两种上下文:程序上下文和请求上下文

变量名 上下文 说 明
current_app 程序上下文 当前激活程序的程序实例
g 程序上下文 处理请求时用作临时存储的对象。每次请求都会重设这个变量
request 请求上下文 请求对象,封装了客户端发出的 HTTP 请求中的内容
session 请求上下文 用户会话,用于存储请求之间需要“记住”的值的词典
  • 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请 求的上下文中才能知道。

jinjia2 模板

官方文档

渲染模板

默认情况下,Flask 在程序文件夹中的 templates 子文件夹中寻找模板。

from flask import Flask, render_template 
# ...
@app.route('/')
def index():
  return render_template('index.html')
@app.route('/user/<name>')
def user(name):
  return render_template('user.html', name=name)

变量

模板中使用的 {{ name }} 结构表示一个变量,它是一种特殊的占位符,告诉模
板引擎这个位置的值从渲染模板时使用的数据中获取。
Jinja2 能识别所有类型的变量,甚至是一些复杂的类型,例如列表、字典和对象。在模板 中使用变量的一些示例如下:

<p>A value from a dictionary: {{ mydict['key'] }}.</p>
<p>A value from a list: {{ mylist[3] }}.</p>
<p>A value from a list, with a variable index: {{ mylist[myintvar] }}.</p>
<p>A value from an object's method: {{ myobj.somemethod() }}.</p>

可以使用过滤器修改变量,过滤器名添加在变量名之后,中间使用竖线分隔。

Hello, {{ name|capitalize }}
过滤器名 说 明
safe 渲染值时不转义
capitalize 把值的首字母转换成大写,其他字母转换成小写
lower 把值转换成小写形式
upper 把值转换成大写形式
title 把值中每个单词的首字母都转换成大写
trim 把值的首尾空格去掉
striptags 渲染之前把值中所有的 HTML 标签都删掉

控制结构

Jinja2 提供了多种控制结构,可用来改变模板的渲染流程。

  • 条件语句
{% if user %}
  Hello, {{ user }}!
{% else %}
  Hello, Stranger!
{% endif %}
  • 循环语句
<ul>
  {% for comment in comments %}
    <li>{{ comment }}</li> 
  {% endfor %}
</ul>
  • Jinja2 还支持宏。宏类似于 Python 代码中的函数。例如:
{% 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_comment(comment) }}
  {% endfor %} 
</ul>

相关文章

  • (一) flask入门介绍

    本系列的内容来自读书笔记:《Flask Web 开发 :基于 Python 的 Web 应用开发实战》 一. fl...

  • Flask初探一(Flask 各参数的应用)

    Flask简介 Flask是什么 Flask 是一个 Python 实现的 Web 开发微框架,轻量级Web 开发...

  • python flask安装和命令

    Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架。Web框架可以...

  • Flask Web Development读书笔记(上)

    Flask Web Development读书笔记(上) meta 拥有25年开发经验的高级软件工程师,目前为广播...

  • Flask web开发

    注:采转归档,自己学习查询使用 Flask web开发(1):安装Flask web开发(2):程序的基本结构Fl...

  • 分享Flask电子书PDF及代码+资料

    分享flask+最新高清经典资料 Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PD...

  • Flaks 开发案例

    flask 是一个基于python的基础web应用开发框架。利用flask可以快速的开发web应用,便携易上手。 ...

  • Flask Web表单验证

    Flask Web表单验证 一、开发准备: 1、安装Flask-WTF扩展: pip install flask-...

  • Flask

    Flask介绍 Flask是一个轻量级的web开发框架, 使用Python开发, 上手简单 安装Flask pip...

  • Flask 轻博客

    取自实验楼实验Flask开发轻博客 作为Flask入门系列感觉不错,最近在学习《 Flask Web 开发 》,与...

网友评论

    本文标题:《Flask Web开发》 读书笔记

    本文链接:https://www.haomeiwen.com/subject/jqywyqtx.html