Flask Web开发读书笔记

1.Flask的两个主要依赖:

路由、调试和Web服务器网关接口(Web Server Gateway Interface,WSGI)子系统由Werkzeug提供。

模板系统由Jinja2提供。

Werkzeug功能:

  HTTP头解析与封装

  易于使用的request和response对象

  基于浏览器的交互式JavaScript调试器

  与 WSGI 1.0 规范100%兼容

  支持Python 2.4-Python 2.7 (Python 3.0实验性支持)

  支持Unicode

  支持基本的会话管理及签名Cookie

  支持URI和IRI的Unicode使用工具

  内置支持兼容各种浏览器和WSGI服务器的实用工具

  集成URL请求路由系统

2.视图函数处理请求并将返回值作为响应

请求钩子函数:before_first_request

      before_request

      after_request

      teardown_request

视图函数和请求钩子函数可以使用的上下文:

程序上下文:current_app (程序实例)

       g (临时存储对象)

请求上下文:request (请求对象)

session (用户会话)

3.将业务逻辑和表现逻辑分离,表现逻辑用模板来实现,由Jinja2模板引擎来渲染模板。

4.使用Flask-Bootstrap集成Bootstrap客户端框架。

5.使用Flask-Moment本地化日期和时间

6.使用Flask-WTF处理web表单

7.使用SQL或NoSQL

对中小程序来说,SQL和NoSQL性能相当。

关系型数据库优点:存储数据高效,避免了重复。缺点:数据存在多个表中,数据更改可能需要访问多个表,然后进行联结。

NoSQL:文档数据库,键值对数据库,用集合代替表,用文档代替记录。优点:将数据放置到一个集合中,提高了查找效率,操作简单(无需联结)。缺点:数据重复量大,查找相关数据时需要在程序中执行联结操作,数据更新时可能需要更新大量文档。

待续

时间: 2024-10-06 23:28:45

Flask Web开发读书笔记的相关文章

《Flask web开发》笔记4:数据库

一.实现功能:通过web表单生成登录界面.当输入的用户名不在后台数据库里时,加进去:在时,显示Happy see you again样式: 1.数据库引擎:MySQL (安装没有要求路径,我是用之前的没动) 2.数据库框架: Flask-SQLAlchemy(书上推荐,直接pip install  Flask-SQLAlchemy 就行) 二. Flask-SQLAlchemy建一个简单的表: aa.py: # coding: utf-8 from flask import Flask from

《Flask web开发》笔记5:大型程序的结构&用户认证Flask-Login

一.学习的内容: 1.工厂函数的定义: 2.蓝本的注册和蓝本文件结构; 3.Werkzeug实现密码散列如何实现: 4.Flask_login的用法: 以上内容通过代码的形式展示: 二.工程的文件结构: |-falsky/ |-app/ |-__init__.py //初始化.工厂函数.注册蓝本等 |-models.py //定义数据库 |-templates/ |-base.html //基本的模板 |-auth/  //蓝本的模板,这样不会跟其他蓝本弄混 |-login.html |-wel

《Flask web开发》笔记2:模板---继承、bootstrap

前言:今天重新梳理了一下前端方面的知识,发现学习东西还是要用,不然忘得快,废话不多说,开始!! 一.模板继承 1.概念:   书上说,模板继承,类似Python上的继承: 其实个人觉得和所有继承都一样. 2.应用场景:当我们写一系列类似的jinja模板的时候发现,我们总是在重复做些无用的操作,{%%}这东西敲得也蛮累的,这时候就需要引入模板继承: 3.例子: 步骤1. 先建立一个模板,作为 '基类': jilei.html: <html> <head> {% block head

《flask web 开发》笔记 -- (1)? 安装

使用虚拟环境,在这个虚拟环境中可以安装私有包,而不会影响系统中安装的全局python解释器 好处:虚拟环境可以避免包的混乱和冲突,而且不需要管理员权限 安装: pip install virtualenv 保存示例代码,git clone https://******** 不详述 git checkout 1a #切换到1a分支 建立虚拟环境 virtualenv venv #建立名为venv的虚拟环境 激活虚拟环境 source venv/bin/activate #执行venv/bin/文件

《flask web 开发》笔记 -- (2)? 程序基本结构

创建第一个flask程序: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() 此处知识点:__name__ ,而且有两处 第一处 app = Flask(__name__) #解释: 将构造函数的name参数传给Flask程序,flask用这个参数决定程序的根目录,以便

flask web开发笔记 -- 快速入门

flask web开发笔记 -- 快速入门 初始化 Flask应用需要创建应用实例. Web服务器通过Web Server Gateway Interface (WSGI)协议把从客户端接收到的请求传递给该对象.应用程序实例是Flask类对象,通常创建如下: from flask import Flask app = Flask(__name__) Flask类的构造函数唯一的参数是应用的主模块名或包名,用于确定应用的根目录.对于大多数应用程序,使用Python的__name__变量即可. 路由

flask web开发笔记 -- 表单 --待整理

虽然Flask的请求对象给表单处理提供了足够的支持,但也有一些任务繁琐和重复.比如为表单生成HTML代码和验证提交表单数据. Flask-WTF扩展能解决上述问题.它基于wtforms 防止跨站请求伪造 跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法.跟跨网站脚本(XSS)相比,XSS

flask web开发笔记 -- 数据库

关系数据库基于关系,有主键.外键等.它存储数据高效,避免了重复:修改数据方便.缺点是连接的成本过高. NoSQL尽量避免连接,但是增加了数据冗余,修改数据麻烦,不过查询快速. 对于中小型的应用,两者的效率差别不大. python数据库框架 Flask对数据库没有限制,你可以使用MySQL, Postgres, SQLite, Redis, MongoDB或CouchDB等.另外还有数据抽象层SQLAlchemy和MongoEngine等. 选择数据库时需要关注: 易用性:抽象层,比如ORM(ob

Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记

<Flask Web开发:基于Python的Web应用开发实战> 点击上方的"目录"快速到达哦! 虽然简单的网站(Flask+Python+SAE)已经上线,但只是入门.开发大型网站,系统地学习一遍还是有必要的. 1 虚拟环境 2016-6-8 书上介绍了 virtualenv,每个venv都会拷贝一份packages到项目 /venv目录. virtualenv venv venv\Scripts\activate.bat (venv) $ pip freeze >