【问题标题】:Flask appbuilder large applicationFlask appbuilder 大型应用程序
【发布时间】:2019-07-26 10:44:07
【问题描述】:

我已经使用 Flask-AppBuilder 构建了一个“大型”应用程序,并且有 2 个问题我没有看到答案。

  1. 有没有办法将一个大型应用程序“拆分”成多个 组件(类似于蓝图所做的)。
  2. 我的业务逻辑大部分都在 View 中,但是...... 感觉不对。我添加的一些东西 模型,再次感觉不对。这是倾向于 创建一个长时间运行的进程,所以我一直在测试 Celery。

其中任何一个的任何例子都会很可爱。

【问题讨论】:

    标签: flask-appbuilder


    【解决方案1】:

    您使用什么框架并不重要,但是一旦应用程序增长,您可能希望隔离关键逻辑。既是出于上述原因,也是为了面向未来(您可能希望将来迁移到新的前端,而无需重写繁重的工作)。

    我通常为此设置一个 redis worker,并使用例如烧瓶仅用于通过函数调用触发队列。这也使应用程序更具可扩展性(并发用户、更多数据),因为如果需要,您可以简单地启动更多工作人员来监听您的队列。

    本质上:

    from redis import Redis
    from rq import Queue
    from rq.job import Job
    
    conn = Redis()
    q = Queue(connection=conn)
    

    然后作为烧瓶路由中的示例(对于 appBuilder,使用视图或创建自己的库)调用:

    result = q.enqueue('utils.your_function_name',args=(id,))
    

    在此处查看 RQ 以获得更多示例,以及如何监控您的工作状态等。

    https://python-rq.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2019-01-21
      • 2018-05-21
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多