日課書

编程100小时挑战

Flask简介

Flask是一个Python的小型Web程序框架,它基于Wekzeug和Jinja 2两个库,有很好的可扩展性。选择学习Flask就是基于他简洁和可扩展的特性。

Web应用的本质是,客户端向服务器发送请求,服务器读取请求内容,返回给客户端相应的数据。如果是静态网站,譬如Hexo博客,客户端输入地址,服务器直接返回静态的HTML页面即可,服务器程序并没有其他任务。但对于动态网站,服务器程序会根据请求的不同,对HTML页面进行相应的加工,返回不同内容的页面。

对应这种特质,一个Web程序,就是响应不同HTTP请求的函数。使用Web框架后,我们在编写Web应用,就是编写对应URL处理函数。

在Flask中URL与处理函数的对应,用@app.route()装饰器实现。route同时能识别不同的HTTP请求类型。

Flask返回页面,可以用render_template()来渲染Jinja模板。

同时HTTP请求中也可能包含客户端上传的数据,用request即可获得。同样利用request还可以获得Cookie数据。

通过redirect()我们可以重定向用户的请求,以达到权限控制的目的。同时用@app.errorhandler()来返回个性化的错误提醒页面。

利用make_response()可以设置响应的内容,状态码,头部信息等。

利用Session可以设置干安全的Cookie。

在网站的交互中,可以利用flash()发出反馈实时信息,模板中可以利用get_flashed_messages()来获得反馈信息。

服务器程序可以使用app.logger来记录日志内容。

参考内容: