Flask web开发(2):程序的基本结构

本系列笔记是我阅读Miguel Grinberg的《Flask Web Development》的笔记,标题与书本同步。希望通过记录技术笔记的方式促进自己对知识的理解。

本篇对应书本第二章:程序的基本结构。

初始化

注:对于Flask开发者来说,传给Flask应用程序构造函数的name参数是比较容易弄混淆的。Flask使用这个参数来确定应用程序的根目录,这样以后可以相对这个路径来找到资源文件。

路由和视图函数

注册新的路由

在Flask应用中,路由是指用户请求的URL与视图函数之间的映射。
Flask框架 根据HTTP请求的URL在路由表中匹配预定义的URL规则,找到对应的视图函数, 并将视图函数的执行结果返回WSGI服务器。

匹配动态URL

route装饰器 :可以使用Flask应用实例的route装饰器将一个URL规则绑定到一个视图函数上。
下面程序中route装饰器将根目录绑定在index视图上。

URL变量类型过滤

启动服务器

一个完整的程序

hello.py: 一个完整的Flask程序

运行结果如下:

hello.py: 包含动态路由的Flask程序

运行结果如下:

请求-响应循环

程序和请求上下文

请求对象封装了客户端发送的HTTP请求。
将请求对象作为参数传入视图函数,视图函数即可访问请求对象。

Flask上下文全局变量

变量名 上下文 说明
current_app 程序上下文 当前激活程序的程序实例
g 程序上下文 处理请求时用作临时存储的对象。每次请求都会重设这个变量。
request 请求上下文 请求对象,封装了客户端发出的HTTP请求中的内容。
session 请求上下文 用户会话,用户存储请求之间需要“记住”的值的词典

程序上下文使用方法:

请求调度

URL映射中的HEAD、Options、GET是请求方法,由路由进行处理。
不同的请求方法发送到相同的URL上时,会使用不同的视图函数进行处理。

请求钩子

Flask支持以下4种钩子:

  • before_first_request:注册一个函数,在处理第一个请求之前运行。
  • before_request:注册一个函数,在每次请求之前运行。
  • after_request:注册一个函数,如果没有未处理的异常抛出,也在每次请求之后运行。
  • teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。

响应

创建响应对象并设置Cookie

from flask import make_response

重定向

错误处理

Flask扩展

Flask被设计为可扩展模式,一些重要功能是用安装包的形式增加。

使用Flask-Script支持命令行选项

运行Python程序: python hello.py runserver
web服务器可使用http://a.b.c.d:5000/ 网络中的任一台电脑进行访问,其中’a.b.c.d’是服务器所在计算机的外网的IP地址。
Python hello.py runserver –host 0.0.0.0

1 4 收藏 2 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部