1. 业务逻辑与表现逻辑

要想开发出易于维护的程序,关键在于编写形式简洁且结构良好的代码。

当用户在网站中注册了一个新账户。用户在表单中输入电子邮件地址和密码,然后点击提交按钮。服务器接收到包含用户输入数据的请求,然后 Flask 把请求分发到处理注册请求的视图函数。这个视图函数需要:

  • (1)访问数据库,添加新用户;
  • (2)生成响应回送浏览器;

这两个过程分别成为:

  • (1)业务逻辑
  • (2)表现逻辑

把业务逻辑和表现逻辑混在一起会导致代码难以理解和维护。假设要为一个大型表格构建 HTML 代码,表格中的数据由数据库中读取的数据以及必要的 HTML 字符串连接在一起。

把表现逻辑转移到模板中能够提高程序的可维护性。

模板是一个包含响应文本的文件,其中包含用占位量表示的动态部分,其具体值只在请求的上下文中才知道。使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染。为了渲染模板,Flask 使用了一个名为 Jinja2 的强大模板引擎。

Python Flask Web 第三课 —— 模板相关推荐

  1. Python Flask Web 第四课 —— 模板引擎Jinja2

    1. 基本介绍 形式最为简单的 Jinja2 模板是一个包含响应文本的文件. templates/index.html <h1>Hello World!</h1> 既然是模板, ...

  2. Python Flask Web 第六课 —— 静态文件

    1. 静态文件与 web 程序的组成 Web 程序不是仅由 Python 代码 模板组成, 静态文件, HTML 代码中引用的图片. JavaScript 源码文件. CSS: >>> ...

  3. Python Flask Web 第七课 —— 使用 flask-moment 本地化日期和时间

    服务器需要统一时间单位,这与用户所在的地理位置(时区)无关,所以一般使用协调世界时(UTC,Coordinated Universal Time). 对用户而言,会对 UTC 格式的时间感到困惑,更希 ...

  4. python flask html模板,python flask web开发实战 Jinja2模板

    templates/index.html Hello World! templates/user.html Hello, {{ name }}! 渲染模板: from flask import Fla ...

  5. Python Flask Web 第十一课 —— 使用 Flask-SQLAlchemy 管理数据库

    alchemy:炼金术,魔力: flask-sqlalchemy 是一个 flask 扩展,其简化了在 Flask 程序中使用 SQLAlchemy 的操作.SQLAlchemy 是一个很强大的关系型 ...

  6. Python Flask Web 第十课 —— flask-wtf

    1. Flask-WTF 的安装与密钥的设置 默认情况下,flask-wtf 能保护所有表单免受跨站请求伪造(Cross-site Request Forgery,CSRF)的攻击.恶意网站把请求发送 ...

  7. Python Flask Web 第八课 —— request 请求对象

    from flask import request 请求对象包含客户端发出的所有请求信息. 1. request.headers request.headers.get('User-Agent') 获 ...

  8. API接口开发其实特简单,Python Flask Web 框架教程来了

    大家好,日常工作中,无论你是数据工程师.数据挖掘工程师,甚至数据分析人员,都不可避免的与他人进行数据交互,API接口提供数据是最常见的形式. 今天我给大家分享 Python Flask Web 框架教 ...

  9. Python Flask Web教程020: flask模板

    flask学习记录004 0. 模板注释: 1. 模板可传递变量 2. 模板控制语法:控制块 if ,for 3. 模板过滤器 4. 模板复用 一.模板继承 二.include 三.宏(mcro) 5 ...

最新文章

  1. solr 4.8 mysql_solr 4.8+mysql數據庫數據導入 + mmseg4j中文全文索引 配置筆記
  2. 使用Trello看板管理项目
  3. python自定义全局异常_flask中主动抛出异常及统一异常处理代码示例
  4. java命令修改user.home file.encoding等参数值
  5. 阮一峰:Flex 布局教程
  6. C++之namespace和::使用总结
  7. Android Studio 导入 Android 系统模块并编译和调试
  8. centos6设置静态IP
  9. 【JavaScript】变量
  10. Vue中watch用法详解
  11. 怎么创建css样式表,为HTML5表单创建CSS样式
  12. 新手如何在IEEE上发表论文?
  13. 中美IT人才俱乐部第一次活动见闻
  14. 程序员面试智力题总结
  15. von mises应力和stress intensity的区别
  16. 提升数据驱动能力的意义
  17. [大数据文章之其四] 概率数据结构简介
  18. 视频教程-微信小程序从入门基础(第一季)-PHP
  19. 头条搬砖最新实操玩法
  20. 计算机上根号5怎么打,根号怎么打(5种快速输入√与×号的方法)

热门文章

  1. python改变像素点颜色,是否可以在Python中更改单个像素的颜色?
  2. 折线图_Line plot - 折线图
  3. android activity 通知 service,android activity和service通信问题
  4. CUDA精进之路(三):图像处理——图像灰度化、灰度直方图统计
  5. u-boot之添加一块新板子的支持
  6. 【C/C++】一篇文章教你区分数组指针指针数组
  7. 10.15 sigstjmp以及siglongjmp函数
  8. transform属性
  9. 【面试虐菜】—— MongoDB知识整理
  10. 线段树专辑—— pku 3468 A Simple Problem with Integers