Как я могу улучшить агрегатор контента, построенный на производительности python flask, с помощью Blueprint - PullRequest
0 голосов
/ 05 августа 2020
• 1000 *

например, новости проекта отвечают за рендеринг данных новостей, которые удаляются с разных веб-сайтов:

news_blueprint = Blueprint('news', __name__)


@news_blueprint.route('/news')
def news():
    wafa_articles = WafaScraper.get_content()
    maan_articles = MaanNewsScraper.get_content()
    rt_articles = RTScraper.get_content()
    bbc_articles = BBCScraper.get_content()

return render_template("news/news.html",
                        wafa_articles=wafa_articles,
                        maan_articles=maan_articles,
                        rt_articles=rt_articles,
                        bbc_articles=bbc_articles)

Каждый код парсера веб-сайта записывается в отдельный модуль, например, BBCScraper возвращает словарь последних новостей, а затем рендеринг в jinja2 внутри div.

в app.py Я зарегистрировал все определенные чертежи, как в приведенном ниже коде:

from flask import Flask

from DBConnection import Mongodb
from views.about import about
from views.covid import covid
from views.health import health_blueprint
from views.home import home
from views.news import news_blueprint
from views.subscribe import subscribe_blueprint
from views.local import local_blueprint
from views.international import global_blueprint
from views.jops import jobs_blueprint


class DevelopmentConfig(object):
    ENV = 'development'
    DEBUG = True

app = Flask(__name__, instance_relative_config=True)
app.register_blueprint(home)
app.register_blueprint(news_blueprint)
app.register_blueprint(about)
app.register_blueprint(covid)
app.register_blueprint(subscribe_blueprint)
app.register_blueprint(health_blueprint)
app.register_blueprint(local_blueprint)
app.register_blueprint(global_blueprint)
app.register_blueprint(jobs_blueprint)




app.config.from_object(DevelopmentConfig)
app.config.from_pyfile('config.py')

Но я заметил, что когда Я делаю Flask Запуск в cmd, для рендеринга маршрутов потребовалось слишком много времени, например, основной маршрут ('/'), который рендерит утилизированные данные с 8 веб-сайтов, занимает 88,01 секунды для рендеринга домашней страницы, как на изображении ниже : введите описание изображения здесь

Engli sh (обнаружено) * 10 15 *

Как повысить производительность, сократив время выполнения?

...