Flask Web开发实战总结笔记

一、请求响应循环

二、HTTP请求

  1. 请求报文:请求方法,URL,协议版本,header,内容实体

  2. request对象(一些属性及方法)

  3. 在flask中处理请求。

    1.路由匹配(app.url_map)

    2.设置监听的http方法(路由参数methods)

    3.URL处理(路由加入URL变量转换器)

    4.请求钩子(共5种)

三、HTTP响应

  1. 响应报文:协议版本,状态码,原因短语,响应首部和响应主体。常见的状态码。

  2. 在flask中生成响应。

    1.重定向redirect() ,url_for()定位到其他视图

    2.错误响应abort()

  3. 响应格式(MIME),make_response()生成响应对象后的mimetype设置。有4种类型:

    1.纯文本类型(text/plain)

    2.HTML类型(text/html)

    3.XML类型(application/xml)

    4.JSON类型(application/json,借助jsonify()函数进行序列化)

  4. cookie,用make_response()生成响应对象后使用set_cookie()方法

  5. session。

    1.设置程序密钥,通过app.secret_key配置,或者先在.env文件中写入该变量后,在程序中再用getenv()方法获取

    2.模拟用户验证,通过session[“logged_in”]=True写入。通过session.pop()登出用户。

四、flask上下文

  1. 上下文全局变量,current_app,g,request,session
  2. 激活上下文,用push()或者pop()显式推送或销毁请求上下文,用test_request_context()方法临时创建请求上下文
  3. 上下文钩子,teardown_appcontext

五、HTTP进阶实践

  1. 重定向回上一个页面。

    1.获取上一个页面的URL,可以通过request.referrer或者在url_for里使用参数next

    2.对URL进行安全验证,使用urlparse方法解析URL模式和主机地址进行验证

  2. 使用AJAX技术发送异步请求,使用jQuery函数ajax(),对应的参数

  3. HTTP服务器端推送,传统轮询,长轮询,Server-Sent Events(SSE)

  4. Web安全防范。

    1.注入攻击,可通过ORM,验证输入类型,参数化查询及转义特殊字符进行防范

    2.XSS攻击,可通过HTML转义(escape()方法)或验证用户输入

    3.CSRF攻击,通过正确使用HTTP方法,CSRF令牌校验进行防范

你可能感兴趣的:(Flask,flask,python)