Ваша проблема заключается в следующем:
for i in range(len(articles)):
myarticles = articles[i]
myarticles всегда будет указывать на последнюю статью в вашем списке статей.
Поскольку в вашем шаблоне вы уже просматриваете статьи, просто передать в статьях.
return render_template('news.html', myarticles=articles)
Забыл также упомянуть, что вам нужно использовать зацикленную статью:
<body>
{% for info in myarticles %}
<h2>Title: {{myarticles.title}} </h2>
<p>Author: {{myarticles.author}} </p>
<p>Url: {{myarticles.url}} </p>
<p>Content: {{myarticles.content}} </p>
<p>Date: {{myarticles.publishedAt}} </p>
{% endfor %}
</body>
Это неправильно, потому что вы не используете информацию, которая имеет данные для каждого отдельного товара.
Вам необходимо изменить его на:
<body>
{% for info in myarticles %}
<h2>Title: {{info.title}} </h2>
<p>Author: {{info.author}} </p>
<p>Url: {{info.url}} </p>
<p>Content: {{info.content}} </p>
<p>Date: {{info.publishedAt}} </p>
{% endfor %}
</body>