引言
1 | from flask import Flask, request, current_app, jsonify |
代码很简单,类视图的好处在于,你可以通过写基类,来处理一些公共的操作,你甚至还可以复用一些已经写好的类视图,让你少些很多代码,更多信息请参考django restframework
1 | from flask import Flask, request, current_app, jsonify |
代码很简单,类视图的好处在于,你可以通过写基类,来处理一些公共的操作,你甚至还可以复用一些已经写好的类视图,让你少些很多代码,更多信息请参考django restframework
1 | from flask import Flask, jsonify |
我们知道
1 | from flask import request |
是一个代理对象,实际上代理的是 RequestContext
的request
属性
1 | class RequestContext(object): |
那么request
属性又是什么什么呢?
一个 web 应用中,不同的路径会有不同的处理函数,路由就是根据请求的 URL 找到对应处理函数的过程。
在下面的例子中,就是根据”/“找到hello_world
的过程
1 | from flask import Flask, request |
我们很容易想到用字典去做路由,key
是 url
,value
是对应的处理函数或者叫视图函数
Flask
把前端传过来的数据environ
封装成了 flask.wrappers.Request
类
这个类的实例又是RequestContext
的request
属性值
1 | class RequestContext(object): |
当然实际的代码是这样
1 | class RequestContext(object): |
这个app.request_class
= flask.wrappers.Request
之所以这样写,是为了扩展性,你可以修改Flask
的request_class
属性来自定义你的Request
类
由上一篇文章我们知道 Flask
要有如下函数或者一个实现了 __call__
方法的类,才可以被wsgi server
调用
1 | def application(environ, start_response): |
1 | class Applications(object): |
那 Flask
是怎么做的呢? 我们来看一下简单的 Flask demo