zoukankan      html  css  js  c++  java
  • flask读书笔记-flask web开发

    在应用启动过程中, Flask 会创建一个 Python logging.Logger 类实例,并将其附属到应用实例上,通过 app.logger 访问

    ============================

    容器映像经常使用 Alpine Linux,因为它体量小。
    ============================

    在dockerfile里创建用户,并切换到此用户。

    adduser 命令的 -D 参数禁止命令提示用户输入密码
    USER 命令选择以哪个用户的身份运行容器,以及 Dockerfile 文件中后续的命令。 Docker 默认使用 root 用户
    ====================

    宿主系统的 8000 端口映射到容器的 5000 端口上
    ============================

    =================================

    Compose 能按正确的顺序启动 mysql flasky 容器,因为它能从 flasky links 键检测到二者之间的依赖关系MySQL 可能要花几秒钟才能启动,但是 Compose 不会等待。设
    计分布式系统时,连接外部服务器时一般都会多试几次
    ===============================

     1 启动应用:docker-compose up -d --build     【--build 选项指明,应该在启动应用之前构建 镜像
    2 Compose 把所有容器的日志合并为一个流,可以使用 docker-compose logs 命令查看

    3 如果你想持续监控日志流的话,使用 docker-compose logs -f
    4 docker-compose ps 命令输出运行中各容器的概况和状态
    5 若想停止应用,使用 docker-compose down 命令。如果想把容器停止并删掉,使用 dockercompose rm --stop --force 命令。
    可以使用 docker volume ls命令查看系统分配的全部卷。若想删除某个不再使用的卷,使用 docker volume rm
    7docker system prune --volumes 命令。这个命令会删除所有不再使用的映像或卷,以及停止后依然在系统中的容器
    8 手动起的镜像在容器异常退出了,容器日志查看,安全性和伸缩性上还有局限性,不方便管理,此时可以使用Kubernetes 进行更精巧的编排
    =========================

    pip freeze 命令查看虚拟环境中安装了哪些包
    Flask 支持在路由中使用 stringintfloat path 类型。 path 类型是一种特殊的字符串,与 string 类型不同的是,它可以包含正斜线

    ==============================
    为了避免大量可有可无的参数把视图函数弄得一团糟, Flask 使用上下文临时把某些对象(如request)变为全局可访问 。Flask 使用上下文让特定的变量在一个线程中全局可
    访问,与此同时却不会干扰其他线程。

    Flask 在分派请求之前激活(或推送)应用和请求上下文,请求处理完成后再将其删除 。如果使用这些变量时没有激活应用上
    下文或请求上下文,就会导致错误
    ===================
    request 的常用属性和方法

    ============================

    在请求钩子函数和视图函数之间共享数据一般使用上下文全局变量 g

    ===============================

    如果视图函数返回的响应需要使用不同的状态码,可以把数字代码作为第二个返回值,添加到响应文本之后

    ==============================

    Flask 提供的 render_template() 函数把 Jinja2 模板引擎集成到了应用中。这个函数的第一个参数是模板的文件名,随后的参数都是键 值对,表示模板中变量对应的具体值。

    ===============================

    变量的值可以使用过滤器修改。过滤器添加在变量名之后,二者之间以竖线分隔。例如,下述模板把 name 变量的值变成首字母大写的形式: Hello, {{ name|capitalize }}

    ====================

    1、使用的 {{ name }} 结构表示一个变量
    2、{% if condition %}...{% else %}...{% endif %}

    3、

    Jinja2 还支持。宏类似于 Python 代码中的函数

     5 导入宏

    Jinja2 使用 block endblock 指令在基模板中定义内容区块。

    7 模板继承:

    如果基模板和衍生模板中的同名区块中都有内容,衍生模板中的内容将显示出来。在衍生模板的区块里可以调用 super(),引用基模板中同名区块里的内容。

     9 url_for('index') 得到的结果是 /,即应用的根 URL

    调用 url_for('index', _external=True)返回的则是绝对地址,在这个示例中是 http://localhost:5000/
    10  staticFlask 为了支持静态文件而自动添加的,这个特殊路由的 URL /static/<filename>
    例如,调用 url_for('static', filename='css/styles.css', _external=True) 得到的结果是 http://localhost:5000/static/css/styles.css
    11 app.config 字典可用于存储 Flask、扩展和应用自身的配置变量。使用标准的字典句法就能把配置添加到 app.config 对象中。

    12 

    13 flash() 函数可实现闪现效果 ,仅调用 flash() 函数并不能把消息显示出来,应用的模板必须渲染这些消息 ,Flask get_flashed_
    messages() 函数开放给模板,用于获取并渲染闪现消息
    ===============================

    有了蓝图,就可以在flask应用还没有被实例化时,创建视图函数了在蓝本中定义的路由和错误处理程序处于休眠状态,直
    到蓝本注册到应用上之后,它们才真正成为应用的一部分

    跨蓝本的重定向必须使用带有蓝本名的完全限定端点名
    =================================

    pip freeze >requirements.txt
    pip install -r requirements.txt 

     ===============

    一般在url中加上版本号(/api/v1.0/posts/ ),在一段时间内,服务器要同时处理 v1.1 v1.0 这两个版本的 URL



     

     

     












     




  • 相关阅读:
    8、泛型程序设计与c++标准模板库5.函数对象
    Linux和Windows系统分区原理
    Linux命令----cd
    为什么会产生TCP/IP?
    区间 dp
    dp-划分数 (递推)
    dp-LCS(递归输出最短合串)
    dp-(LCS 基因匹配)
    位运算符
    求对数
  • 原文地址:https://www.cnblogs.com/testzcy/p/10988999.html
Copyright © 2011-2022 走看看