一个简单的使用 Tkinter 和 Newsapi 的新闻应用
Tkinter 是一个 Python 库,用于为 Windows 和基于 UNIX 的操作系统创建桌面应用程序。Tkinter 提供了许多选项来为应用程序创建窗口部件。使用 Tkinter 可以通过不同的方式创建相同的窗口部件。
如今,互联网上提供了大量的信息来源。新闻不断地从全球来源到本地来源涌现。跟踪最新的新闻是一项艰巨的任务。在本文中,我们将使用 Tkinter 和 Newsapi 创建一个简单的新闻应用程序。
什么是 Newsapi?
News API 是一个 (应用程序编程接口),通过 JSON 网络 API 提供对全球新闻文章和突发新闻的访问。News API 简单地提供了一个 REST API,开发人员可以使用它轻松地以 JSON 格式获取所有新闻文章、标题等。
如何创建你的 API 密钥
要使用 News API,您需要通过访问 News API 网站 创建您的 API 密钥。
点击右上角的 GetApiKey 按钮。
在出现的表单中填写您的基本信息。
提交您的基本信息后,您的注册将完成,并且您将获得您的 API 密钥。
使用 Tkinter 和 Newsapi 创建 Web 应用的步骤
步骤 1 - 安装 Tkinter 和 News Api
在开始实现 Web 应用之前,您需要在 Python 中安装 Tkinter 库和 news API。打开命令提示符或终端,并键入 pip install 命令。
pip install tk pip install newsapi-python
Pip 是一个 Python 包管理器。以上命令将 tkinter 和 newsapi 安装到您的本地文件系统中。
步骤 2 - 导入所需的模块
导入 tkinter 和 newsapi 模块以便在创建简单的新闻应用程序时使用它们。
import tkinter as tk from newsapi import NewsApiClient
步骤 3 - 创建 News API 客户端对象
安装完所有库后,创建一个 NewsAPI 客户端对象,并使用您从 News API 网站创建的 API 密钥对其进行初始化。
newsapi = NewsApiClient(api_key='your_api_key_here')
将 your_api_key_here 替换为您从 NEWS API 网站创建的 API。
步骤 4 - 创建一个获取最新新闻文章的函数
我们将创建一个函数 get_news(),它将检索最新的新闻标题,并在我们的应用程序中以文本窗口部件的形式显示它们。此外,在检索新的新闻文章标题之前,我们需要清除屏幕。
def get_news(): # Retrieve the top headlines top_headlines = newsapi.get_top_headlines(language='en') # Clear the text widget text.delete(1.0, tk.END) # Display the top headlines for article in top_headlines['articles']: text.insert(tk.END, article['title'] + '\n\n')
步骤 5 - 创建一个简单的用户界面
现在,我们将为我们的应用程序创建一个简单的用户界面,并在应用程序中以文本窗口部件的形式显示新闻标题。应用程序底部的按钮显示“获取新闻”,它将从新闻 API 中检索新闻标题并在应用程序屏幕上显示它们。
# Create the main window root = tk.Tk() root.title('News App') # Create the text widget text = tk.Text(root, height=20, width=50) text.pack() # Create the button button = tk.Button(root, text='Get News', command=get_news) button.pack() # Run the main loop root.mainloop()
下面可以找到简单 Web 应用的完整代码 -
示例
import tkinter as tk from newsapi import NewsApiClient newsapi = NewsApiClient(api_key='your_api_key_here') def get_news(): # Retrieve the top headlines top_headlines = newsapi.get_top_headlines(language='en') # Clear the text widget text.delete(1.0, tk.END) # Display the top headlines for article in top_headlines['articles']: text.insert(tk.END, article['title'] + '\n\n') # Create the main window root = tk.Tk() root.title('News App') # Create the text widget text = tk.Text(root, height=20, width=50) text.pack() # Create the button button = tk.Button(root, text='Get News', command=get_news) button.pack() # Run the main loop root.mainloop()
输出
结论
在本文中,我们了解了如何在 Python 中使用 Tkinter 和新闻 API 创建一个简单的 Web 应用。我们简单地调用了新闻 API 提供的 REST API,并在用户友好的界面中的一个简单的文本窗口部件中显示了新闻标题。该应用程序可以扩展以包含更多功能,例如按主题或来源过滤新闻,改进 UI,以及添加其他内容以使应用程序对用户更具交互性。