M1-Flask-Day4

今日内容概要:

  1.git使用

  2.redis基本操作

  3.celery应用

  4.在flask中使用celery

  5.saltstack的基本使用

 

基础回顾:

  1.关于FLASK

  

-基本使用
    路由
    视图
        - cbv,fbv
    模板
    session
    闪现
    蓝图(目录结构划分)
    特殊的装饰器@app.before_request
    信号
 
a.flask和django 的区别?
    1.flask轻量级,短小精悍,可扩展性强
    2.django内置非常多的组件,大而全,ORM,FORM,Model_Form,中间件,Admin

b.flask的生命周期?
    请求进来之后
        1.将请求相关数据封装到RequestContext对象中
        2.将应用相关的数据封装到AppContext对象中
        3.将两个对象放到一个小房子里
        4.将小房子封装到Local对象里
     执行before_request函数
     执行视图函数
     执行after_request函数
     执行save_session函数
     将Local里的两个对象删除

c.什么是MVC,MTV?
    MTV : model  template view
    MVC : model  view  controller

d.flask的精华上下文管理
    - 首先要了解threading.local,对线程之间进行隔离
    - flask的自定义的本地线程 支持的粒度更小,支持协程
    - 请求进来时候,设置值: LocalStark -> Local(ctx和app_ctx对象)
    - 视图函数,调用值, LocalProxy --> 偏函数 --> Local(ctx和app_ctx对象)

f.SqlAlchemy和sql的区别?
    
      1.ORM是关系对象映射,类对应数据库表,对象对应数据库行,之后再执行类和对象时ORM帮助我们转换成SQL语句并执行
  2.pymysql直接执行sql语句
    
      ORM:执行效率差,开发效率高
      pymysql:执行效率高,开发效率低

Flask-SqlAlchemy组件:
    将SqlAlchemy和Flask组合到一起

      原生sql最好使用数据库连接池
      DBUtils
      Sqlalchemy的不用orm

websocket
    目标:让浏览器上的数据实时更新
        http协议:
            - 轮询
            - 长轮询
        websocket协议
            - WebSocket
    websocket协议:
        - 默认连接不断开 全双工模式
        - 握手 通过魔法字符串加密
        - 数据解密 playload 后7位,125,126,127 mask_key 剩下进行位运算
    框架中使用:
        -flask :gevent-websockt
        -tornado: 内置
        - django: channel

  

  

posted @ 2018-05-23 18:03  dragonliu  阅读(146)  评论(0编辑  收藏  举报