[雪峰磁针石博客]flask构建自动化测试平台2-开始头条项目

简介:

2-开始头条项目

代码地址

我们将创建一个头条应用程序,显示最新的新闻标题,天气信息,和货币汇率。

在本章中,我们将介绍RSS源并展示如何自动使用它们从特定出版物中检索最近的新闻报道。在下一章中,我们会讨论如何使用模板来显示检索到的标题和摘要文章给我们的用户。第4章,我们头条页面项目的用户输入,将显示你如何从用户那里获得输入,以便他们可以定制他们的体验,也看看如何将天气和货币数据添加到我们的应用程序。我们会完成在第5章“改善我们头条项目的用户体验”一文中关注项目添加一些CSS样式并查看如何记住用户的偏好。

到本章结束时,您将学会如何创建更复杂的Flask应用。我们将从真实世界的新闻故事中提取原始数据并构建HTML格式化将其显示给我们的用户。您还将学习更多关于路由的知识 - 也就是说不同的URL会触发我们应用程序代码的不同部分。

在本章中,我们将介绍以下主题:

  • RSS和RSS源简介

技术支持QQ群: 144081101 591302926 567351477
本文最新版本

RSS和RSS源简介

我们需要安装feedparser:feedparser。

  • 问题,如何寻找python库?

python测试开发库PYPI


pip3 install --user feedparser

主要的RSS有WordPress和Blogger,通常会有如下图标。

image.png

BBC news的rss为: http://feeds.bbci.co.uk/news/rss.xml

下面的代码需要对HTML有一定的了解,初学者可以参考:http://www.w3school.com.cn/html/index.asp


import feedparser
from flask import Flask

app = Flask(__name__)

RSS_FEEDS = {'bbc': 'http://feeds.bbci.co.uk/news/rss.xml',
             'cnn': 'http://rss.cnn.com/rss/edition.rss',
             'fox': 'http://feeds.foxnews.com/foxnews/latest',
             'iol': 'http://www.iol.co.za/cmlink/1.640'}


@app.route("/")
@app.route("/<publication>")
def get_news(publication="bbc"):
    feed = feedparser.parse(RSS_FEEDS[publication])
    first_article = feed['entries'][0]
    return """<html>
    <body>
        <h1>Headlines </h1>
        <b>{0}</b> 
        <i>{1}</i>
        <p>{2}</p>
    </body>
</html>""".format(first_article.get("title"),
                  first_article.get("published"),
                  first_article.get("summary"))


if __name__ == "__main__":
    app.run(host='0.0.0.0',port=8000, debug=True)

执行:


$ curl http://172.20.15.200:8000/iol
<html>
    <body>
        <h1>Headlines </h1>
        <b>IEC still unable to confirm addresses of 2.8 million citizens</b> 
        <i>Wed, 07 Mar 2018 17:26:00 GMT</i>
        <p>The Independent Electoral Commission still does not have addresses for 2.8 million South Africans ahead of the 2019 general elections.</p>
    </body>
</html>andrew@andrew-PowerEdge-T630:~/code/Flask-Building-Python-Web-Services/Module 1$ curl http://172.20.15.200:8000/cnn
<html>
    <body>
        <h1>Headlines </h1>
        <b>In Lesotho, women say they're finding their abortions on Facebook</b> 
        <i>None</i>
        <p>None</p>
    </body>
</html>andrew@andrew-PowerEdge-T630:~/code/Flask-Building-Python-Web-Services/Module 1$ curl http://172.20.15.200:8000/test
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>KeyError: 'test' // Werkzeug Debugger</title>
    <link rel="stylesheet" href="?__debugger__=yes&amp;cmd=resource&amp;f=style.css"
        type="text/css">
    <!-- We need to make sure this has a favicon so that the debugger does

...

image.png

参考资料

相关文章
|
7天前
|
C语言 开发者
Makefile 简介:自动化你的构建过程
一旦`Makefile`被正确设置,你只需要在命令行中运行命令`make`,它会查找当前目录下的`Makefile`文件,并执行其中定义的规则来构建目标。`make`命令非常智能,它会检查文件的时间戳,只重新编译那些自上次编译后有改动的文件。 总之,`Makefile`是开发者的强大工具,能够大幅提升软件开发的效率和准确性。通过学习和使用`Makefile`,你可以更有效地管理项目构建过程,使其自动化、高效且可靠。
10 1
|
2天前
|
Java Maven
Maven 自动化构建
Maven自动化构建确保项目依赖稳定性:当`bus-core-api`构建后,`app-web-ui`和`app-desktop-ui`这两个依赖它的项目自动构建。`app-web-ui`和`app-desktop-ui`均依赖`bus-core-api`的1.0-SNAPSHOT版本。
|
5天前
|
Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性:当`bus-core-api`构建完成,`app-web-ui`和`app-desktop-ui`自动构建,两者依赖`bus-core-api`的1.0-SNAPSHOT版本。
|
12天前
|
XML Java 测试技术
Maven 构建 & 项目测试
在本节中,我们学习了如何使用Maven构建和测试Java应用。在`C:/MVN/consumerBanking`项目中,`pom.xml`配置了JUnit为测试框架。通过命令行运行`mvn clean package`,Maven执行清理、编译、运行测试和打包成`consumerBanking-1.0-SNAPSHOT.jar`。测试报告位于`target/surefire-reports`。新增`Util.java`类后,更新`App.java`以调用它。执行`mvn clean compile`后,运行结果显示&quot;Hello World!&quot;。
|
12天前
|
Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性:当`bus-core-api`(1.0-SNAPSHOT)构建完成后,自动触发`app-web-ui`和`app-desktop-ui`的构建,它们都依赖此版本以保持同步。
|
12天前
|
JSON 程序员 数据格式
豆瓣评分9.6!用81个项目带你从Python 3零基础到Python自动化
Python的名字来自超现实主义的英国喜剧团体,而不是来自蛇。Python程序员被亲切地称为Pythonistas。Monty Python和与蛇相关的引用常常出现在Python的指南和文档中。
|
12天前
|
消息中间件 Kubernetes Kafka
AutoMQ 自动化持续测试平台技术内幕
Marathon 是一个针对流系统 AutoMQ 的自动化持续测试平台,旨在在模拟生产环境和各种故障场景中验证 SLA 的可靠性。设计原则包括易拓展、可观测和低成本。平台采用分布式架构,Controller 负责资源管理和任务编排,动态调整 Worker 数量和配置,而 Worker 是无状态的,用于生成负载和上报数据。系统基于 K8S,利用服务发现、事件总线和 Spot 实例降低成本并提高弹性。测试场景以代码形式描述,支持不同流量模型和断言,提供丰富的可观测性和告警功能。未来,Marathon 有望泛化为适用于各种分布式系统的测试平台。
18 0
AutoMQ 自动化持续测试平台技术内幕
|
14天前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
33 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
|
14天前
|
测试技术
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
13 0
|
14天前
|
测试技术 程序员 开发者
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
10 0