Flask 自建扩展

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

  • 自建扩展介绍

    • Flask扩展分两类
      1. 纯功能, 如: Flask-Login 提供用户认证
      2. 对已有的库和工具包装(简化继承操作,并提供有用的功能,更方便)
        如: Flask-SQLAlchemy 包装了 SQLAlchemy
    • 涉及的 python 包
      1. setuptools
      2. wheel
      3. twine: 发布python 包 (发布到 PyPI 后才能使用 pippipenv 安装)
      4. readme_renderer: 将 mdrsttxt 文本 渲染成.html
    • 命名:
      1. 扩展的名称: Flask-<功能/第三方库名> 或 <功能/第三方库名>-Flask
      2. 扩展的包名: flask_<功能/第三方库名> (小写加下划线)
  • 扩展类实现

    • 编写扩展类(以 Flask-Share 为例)
      • 使用扩展步骤: 导入扩展类 - 实例化 - 传入 app 初始化
      from flask_share import Share
      share = Share()  # extensions.py 中统一实例化所有扩展
      share.init_app(app) # 在工厂函数中统一初始化所有扩展
      # 也可以一步到位
      # share = share(app) 
      
      
      • 新建扩展类 (flask_share/__init__.py)
      class Share(object):
        def \_\_inti\_\_(self, app=None):
          self.init_app(app)
          
        def init\_app(self, app):
          # 兼容 0.7 以前版本
          if not hasattr(app, 'extensions'): 
            app.extensions={}
            
          # 在 app 应用中存储所有扩展实例, 可验证扩展是否完成实例化
          app.extensions['share'] = self
          
          # 扩展类添加到模板上下文中
          app.jinja_env.globals['share'] = self
          # app.context\_processor(lambda:{'share': self})
          
          # 扩展配置, 初始化后添加到 app.config 中, 以 SHARE\_ 开头避免冲突
          app.config.setdefault('SHARE\_SITES', 'weibo,wechat,douban,facebook,twitter,google,linkedin,qq,qzone')
          app.config.setdefault('SHARE\_MOBILESIT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值