flask组件,你必需要了解的坑

本篇文章是我使用flask组件进行开发时遇到的诸多问题总结。在使用flask开发技术选择的时候可以参考一下。


1、flask不支持并发,如果想要在服务器上部署,那就要学习部署服务器的知识和uwsgi。

不过多解释,看源码就知道。


2、强烈推荐大家不要使用flask-login,因为真的很垃圾。太容易出bug了。

flask-login并不简单,里面的机制很复杂,使用原生flask自带的session组件,完全可以替代它,毕竟作为开源组件,flask-login还是有可能存在大bug的。


3、无论什么时候,我都强烈推荐你使用flask-sqlalchemy而不是sqlalchemy。

这两个库都用过,本质上flask-sqlalchemy是flask风格的sqlalchemy,非常好用。


4、登录判断的选择,要考虑使用session-cookie还是token。

这个自己灵活选择吧。


5、异常处理,强烈建议使用官方给出的层级异常处理。并且flask封装了很多异常处理的东西,建议根据官方文档食用。


6、如果你使用了flask-restful,那么restful会自动捕获所有的视图函数发生的所有异常,所以所有的针对app的自定义异常处理函数会失效。简单说,就是要这样写:

class MyApi(Api):
    """
    自定义Api类
    """
    def handle_error(self, e):
        # deal with the HTTPException
        if isinstance(e, HTTPException):
            return jsonify({
                'message': getattr(e, 'description', HTTP_STATUS_CODES.get(e.code, 'Unknown Error')),
                'code': e.code
            }), e.code
        # deal with the python core exception
        # we don't need to use "try" to catch the exception
        if not getattr(e, 'message', None):
            current_app.logger.error(e)
            return jsonify({
                'message': 'Server has encountered some errors.',
                'code': 500
            }), 500
        # deal with the specific custom exceptions
        return jsonify(**e.kwargs), e.status_code

7、考虑flask-apscheduler时,要首先知道这个库的文档非常垃圾,并且要明白,里面的JOB字段是不能改变的,也就是说,存到数据库的JOB,里面的字段不能自定义,除非修改源码。

真的是个SB库。


8、使用flask开发的时候要一定要注意目录结构,否则非常麻烦,官方文档给出了目录的最佳实践。可以去参考一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值