我创建了一个 Flask 应用程序,它实际上是一个新闻搜索应用程序。它目前提供多种路由,与 Elasticsearch 集成以进行文档搜索和索引,并通过 Flask-SQLAlchemy 与 mySQL DB 集成。
\n该应用程序应该允许登录的用户搜索文档/文章,此时会触发 elasticsearch 并将结果返回给用户。这一切都有效。
\n我现在正在构建使用 RQ 和 Ajax 启动后台异步搜索的功能。现在我需要我的 RQ 来排队一个任务,该任务将搜索(调用一些 API)、更新我的数据库并更新我的 ES 索引。所有这些功能都已在我的 Flask 应用程序中构建(搜索 API 调用、配置、DB ORM、ES 接口),因此我希望理想地重用所有这些功能。
\n我设置了一个 RQ,它调用一个模块,然后尝试创建一个新的应用程序实例,以便我可以重用现有的 DB/ES 设置,但是当调用代码时,我从 RQ 中收到错误:
\nFile "./news_functions.py", line 14, in <module>\n from app import create_app, db\nModuleNotFoundError: No module named 'app'\nRun Code Online (Sandbox Code Playgroud)\n应用结构如下:
\nproject\n\xe2\x94\x82 project.py \n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x82 \xe2\x94\x82 __init.py__\n\xe2\x94\x82 \xe2\x94\x82 config.py\n\xe2\x94\x82 \xe2\x94\x82 models.py\n\xe2\x94\x82 \xe2\x94\x82 classes.py\n\xe2\x94\x82 \xe2\x94\x82 news_functions.py\n\xe2\x94\x82 \xe2\x94\x82 .env\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80main\n\xe2\x94\x82 \xe2\x94\x82 __init__.py\n\xe2\x94\x82 \xe2\x94\x82 forms.py\n\xe2\x94\x82 \xe2\x94\x82 views.py\n\xe2\x94\x82 …Run Code Online (Sandbox Code Playgroud)