1 模板 -Templates
1 什么是模板
模板,在Flask中就是允许响应给用户看的网页在模板中,允许包含“占位变量”来表示动态的内容
模板最终也会被解析成字符串再响应给客户端,这一过程通常称为“渲染”
2 模板的设置
默认情况下,Flask会在程序文件夹中的 templates 的子文件夹中搜索模板 默认情况下,需要手动创建 templates 文件夹
3 模板的渲染
作用:在视图中,将模板文件(xx.html)渲染成字符串之后,再响应给客户端浏览器
函数:render_template(xx.html)
4 模板中的语法(重难点)
1 变量
变量是一种特殊的占位符,告诉模板引擎该位置的值是从渲染模板时的数据中获取出来的
在视图中:
app.route('/')
def index():
return render_template('xx.html',变量1 = 值1,变量2 = 值2)
2 过滤器
1 什么是过滤器
过滤器是允许在变量输出前改变变量的值
2 语法
{{ 变量|过滤器}}
Jinja2 模板中常见的过滤器:
过滤器名 说明
capitalize 首字符变大写,其他变小写
lower 将值转换为小写
upper 将值转换为大写
title 将值中的每个单词首字符变大写
trim 去掉值两边的空格
3 标签
1 什么是标签
每个标签标示的是不同的服务器端的功能
2 常用标签
1。 if标签
1 基本if结构
{% if 条件 %}
{% endif %}
2 if... else 结构
{% if 条件 %}
满足条件时要运行的代码
{% else %}
不满足条件时要运行的代码
{% endif %}
3 if...elif ..elif ..else
{% if 条件1 %}
满足条件1 ,要运行的代码
{% elif 条件2 %}
满足条件2,要运行的代码
{% else %}
{% endif %}
2 for 标签
{% for 变量 in 元组|字典|列表%}
{% endfor %}
在 Jinja2模板的循环中,支持内部变量-loop
loop作用:记载当前循环中的一些相关信息
loop 常用属性
1 index
用法:loop.index
作用:记录当前循环的次数,从 1 开始纪录
2 index0
用法: loop.index0
作用:同上,从0开始记录
3 first
用法:loop.first
作用:值为True,则表示当前循环是第一次循环
4 last
用法:loop.last
作用:值为True,则表示当前循环是最后一次循环
3 macro 标签(宏)
1 作用:
相当于是在模板中声明函数
2 语法
使用{% macro %}声明宏
{% macro 名称(参数列表) %}
{% endmacro %}
3 在独立的文件中声明宏
1 创建 macro.html 模板文件
作用:定义项目中要用到的所有的宏
{% macro show_p(str)%}
<p style="background: orange">{{str}}</p>
{% endmacro %}
{% macro show_li(str) %}
<li><p style="font-size: 20px;">内容</p></li>
<span style="color: red;">{{str}}</span>
{% endmacro %}

                2 在使用的网页中,导入macro.html
{% import 'macro.html' as macros %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% import 'macro.html' as macros %} {% for i in list_1 %}
{{macros.show_li(i)}}
{% endfor %}
</body>
</html>
          4 include 标签
            将其他的模板文件包含到当前的模板文件中
            语法:{% include 'xx.html' %}
             {% include '05-head.html' %}
     5 静态文件处理
      1 什么是静态文件
        在Flask中不能与服务器动态交互的文件都是静态文件
          如:图片,css文件,Js文件,音视频文件
      2 静态文件的处理
        1 所有的静态文件必须放在名为static 的目录中
          static目录要放在项目的根目录处
        2 所有的静态文件必须通过 /static/路径访问
          /static/images/a.jpg
          /static 要到静态资源目录中继续搜索
 1 模板
  1 静态文件地址的反向解析
    url_for('static',filname='<file_path>')
    et:
    url_for('static',filename='image/b041.jpg')
  2 模板的继承
    1 什么是模板的继承
      模板的继承类似于类的继承,如果一个模板中出现的内容来自于另一个模板的话,那么就可以使用继承的方式来简化开发
    2 语法
      1 父模板
        需要定义出哪些东西在子模板中是可以被重写的
        {{ block 块名}}
          父模板中正常显示的内容
        {{ endblock }}
          block
            1 在父模板中是可以正常显示的,没有任何影响
            2 在子模板中是可以被重写的
      2 子模板
        1 需要指定继承来自哪个父模板
          {% extends 父模板的名称 %}
        2 重写父模板中对应的内容
          {{ block 块名 }}
              此处编写的内容会覆盖掉父模板中同名block的内容
              允许通过{{ super() }}来调用父模板中的内容
          {{ endblock }}
2 修改配置
 1 构建Flask 应用时允许指定的配置信息
  app =Flask(__name__,template_folder='muban',static_url_path='/s',static_folder='/sta')
    template_folder:指定存放模板的文件夹名称
    static_url_path:访问静态资源的路径
    static_foler:指定存放静态文件目录名称
      在项目的根目录中,有一个名为sta的目录用于存放静态文件
3 请求(request) 和 响应(response)
   1 HTTP协议
    Request Headers - 请求消息头
    Response Headers - 响应消息头
  2 请求对象 - request
    request - 请求对象,封装了所有与请求相关的信息,如:请求数据,请求消息头,请求路径,...
    在Flask中,要使用request 的话,必须先导入
    from flask import request
    1 request 的常用成员
      1 scheme: 获取请求方案(协议)
      2 method: 获取本期请求的请求方式(重点)
      3 args :获取使用get请求方式提交的数据
      4 form :获取使用post 请求方式提交的数据
      5 cookies: 获取cookies的相关信息
      6 headers: 获取请求消息头的相关信息
      7 files:获取上传的文件
      8 path :获取请求的url地址
      9 full_path :获取请求的url地址(进入到主机后的请求资源地址,包含请求参数)
      10 url :获取完整的请求地址,从协议开始的地址
    2 获取请求提交的数据
      1 get 请求方式
        1 表单允许实现get请求
          <form action=""> method ="get">
            姓名:<input name ='uname'>
          </form>
        2 在请求地址后拼请求提交的参数
          request.args封装的是get 请求的数据
      2 post 请求方式
        post请求只有在表单中才能够被触发
        <form method='post'>
        获取post 请求提交的数据:
          request.form 封装的就是post请求的数据,类型为字典
        request.form['name']:获取name 对应的值
        request.form.get('name'):获取name 对应的值
        request.form.getlist('name'):获取name 列表数据(如复选框,下拉列表)
        

macro 标签,和静态文件,以及templates的更多相关文章

  1. day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置

    目录 1.dispatch 2.模板渲染 3.过滤器 4.标签 5.组件 6.静态文件配置 dispatch 回顾:CBV对应的URL传参 urls.py url(r'^book/(\d+)/(\d+ ...

  2. Django 2.0 学习(09):Django 静态文件(样式和背景图片)

    应用的定制化:静态文件 首先,在polls目录中创建一个名叫static的目录.Django会在该目录里面查找静态文件,类似于Django在polls/template目录下查找模板文件. Djang ...

  3. Flask初级(四)flash在模板中使用静态文件

    Project name :Flask_Plan templates: 默认设置下,Flask在程序根目录中名为static的子目录中寻找静态文件. 随便找个图片放进去把,命令test.png Fla ...

  4. django静态文件配置和使用

    一.首先需要了解的知识点是: 1.出于对效率和安全的考虑,django管理静态文件的功能仅限于在开发阶段的debug模式下使用,且需要在配置文件的INSTALLED_APPS中加入django.con ...

  5. 7. url反向解析和静态文件

    一.代码中url出现的位置 1.模版[html]中 1.<a href='urk'>超链接点击跳转<a/> 2.<form action='url' method='po ...

  6. Django 模板 语法 变量 过滤器 模板继承 组件 自定义标签和过滤器 静态文件相关

    本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法 ...

  7. django系列4.2--自定义标签, 自定义过滤器, inclusion_tag, 引入静态文件(css,js等)

    项目的目录为 在app中创建templates时,最好要再创建一个app名相同的文件夹,因为项目找文件时从第一个app开始遍历,不同app内的同名文件会有冲突,所以这样处理 一.自定义标签和过滤器 1 ...

  8. django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)

    常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...

  9. Django下的templates 和 static静态文件

    如果Django顶层目录中没有templates的话,就自己新建一个Directory ,这个文件是存放html文件的 1)如果在views里面用render(request,"" ...

随机推荐

  1. LeetCode_121. Best Time to Buy and Sell Stock

    121. Best Time to Buy and Sell Stock Easy Say you have an array for which the ith element is the pri ...

  2. Golang 项目 GOPATH 总结

    查看GOPATH go env 项目里执行:go  get  github/winyh/XXX 命令时, 包会下载到 GOPATH第一个目录下的src文件夹 项目里引入依赖的时候会自动到GOPATH里 ...

  3. Win10使用Tex Live和VS Code和Latex Workshop插件编写Latex文档(未完成版本)

    首先取Tex Live官网下载安装包:https://www.tug.org/texlive/acquire-netinstall.html 我下载的是 http://mirror.ctan.org/ ...

  4. 细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

  5. 【c# 学习笔记】面向对象编程的应用

    在平时的开发过程中,面向对象编程的应用肯定必不可少.但前面的内容只是单独介绍了类.面向对象思想和接口,那么我们怎么在平时工作中来应用他们来实现面向对象编程呢? 如果你想设计一个Dog类,有了类的概念后 ...

  6. 心の壁 From EOE:Air / 真心为你

    https://www.bilibili.com/bangumi/media/md10272/ 真嗣:我问你. 凌波:什么? 真嗣:梦到底是什么呢? 凌波:梦? 真嗣:我不太明白什么是现实. 凌波:你 ...

  7. charles 验证工具

    本文参考:charles 验证工具 验证工具/validate 验证工具 Charles可以通过发送到W3C HTML验证器,W3C CSS验证器和W3C Feed验证器来验证记录的响应. 验证报告在 ...

  8. SQL 创建表

    SQL 创建表是通过SQL CREATE TABLE 语句来实现,该语句是DDL SQL语句.CREATE TABLE语句用于创建用于存储数据的表.在创建表时,可以为列定义主键.惟一键和外键等完整性约 ...

  9. CenOS 7 防火墙 端口 systemctl 操作项

    Centos开放端口 # firewall-cmd --zone=public --add-port=3306/tcp --permanent Centos关闭端口 # firewall-cmd -- ...

  10. Mybatis映射文件sql语句注意事项

    1.插入