我正在用Flask构建一个web应用程序,并且有一个哲学/架构相关的问题要给所有比我更有经验的人。
用户在我的应用程序中输入一些基本的搜索条件,然后我的应用程序查询多个第三方app以获取与条件相关的信息,并聚合结果。
最后,我的应用程序将每两周向用户发送一封电子邮件,其中包含一个HTML格式的表,其中包含API查询收集的信息(作为表中的行)。这些信息不需要长期存储,一周左右就会过时,存储起来真的没有意义。第三方API大约每周都会被重新查询一次。
最初,我认为我需要为每个用户维护一个数据库表,该表将聚合和存储他们特定API查询的结果。我计划从数据库中的行创建电子邮件表的内容。
我现在想知道是否有一种方法可以在发送电子邮件之前不使用数据库临时存储API查询的结果来完成所有这些。
我的问题是:完成我想要做的事情的最有效或最佳的方法是什么?有没有可能在没有存储API查询结果的数据库的情况下做到这一点?
这里重述一下最初概念的操作顺序:
应用程序查询信息API -->应用程序将API返回的数据存储在数据库表中-->应用程序将数据库表中的信息放入格式化的HTML表-->应用程序通过电子邮件将HTML表发送给用户-->应用程序下次查询API时,DB表将被覆盖。
对于上下文,这里是我使用的不同包:
烧瓶1.1.1为0.15.5
用于开发和生产的应用程序服务器。
gunicorn 19.9.0
测试和静态分析。
pytest 5.1.0 pytest-cov 2.7.1模拟3.0.5 flake8 3.7.8
数据和工作人员。
SQLAlchemy 2-二进制2.8.3烧瓶-SQLAlchemy 2.4.0 SQLAlchemy 1.3.7 alembic 1.0.11
redis 3.3.7芹菜4.3.0
表单。
Flask-WTF 0.14.2 WTForms-Components 0.10.4 WTForms-Alchemy 0.16.9
付款。
条带2.35.0
实用工具。
faker 2.0.0
扩展。
Flask-debugtool0.10.1 Flask-Mail 0.9.1 Flask-Login 0.4.1 Flask-Limiter 1.0.1 Flask-Babel 0.12.2 Flask-Static-Digest 0.1.2
发布于 2019-12-30 01:42:24
如果在DB中不需要它,似乎可以使用pandas模块,并将其用作DataFrame。dataframe提供了许多对数据库的简单操作,而不必实际使用数据库。
https://stackoverflow.com/questions/59521728
复制相似问题