📜  Python的有趣事实生成器 Web 应用程序

📅  最后修改于: 2022-05-13 01:54:27.995000             🧑  作者: Mango

Python的有趣事实生成器 Web 应用程序

在本文中,我们将讨论如何使用 PyWebio 模块在Python创建一个有趣的事实生成器 Web 应用程序。本质上,它会随机创建有趣的事实并将它们显示在 Web 界面上。该脚本将在GET方法的帮助下从uselessfacts.jsph.pl 中检索数据,我们将使用请求JSON模块分别获取和加载数据。数据加载完毕后,只需要传递字典中的文本,这样我们就只能得到笑话了。为了在网络上创建一个简单的交互式界面,我们将使用PyWebIO模块。

PyWebIO 包含在浏览器上获取用户输入和输出的功能,将浏览器变成“富文本终端”,可用于构建简单的 Web 应用程序或基于浏览器的 GUI 应用程序。有了这个模块,任何人都可以在没有 HTML 和 JS 的任何先验知识或开销的情况下生成 Web 应用程序。

可以使用以下命令安装它:

pip install pywebio

入门

按照以下步骤创建一个有趣的因素生成器 Web 应用程序。

  • 导入所有需要的模块
  • 使用requests.request()方法发送GET请求,并使用json.loads()函数解析有效的JSON消息并将其转换为Python字典。由于requests函数会创建一个条目字典,而我们只需要文本,所以我们将在 json 模块中传递response.text
  • 现在,因为我们需要文本,即事实,我们将在数据列表中传递文本并使用pywebio模块中定义的样式函数打印事实。因为 data 是一个包含几个无用项目的随机笑话字典,所以我们将只获取文本部分。

下面给出了使用上述方法的完整实现。



程序:

Python3
# import the following modules
import json
import requests
from pywebio.input import *
from pywebio.output import *
from pywebio.session import *
  
  
def get_fun_fact(_):
    
    # Clear the above screen
    clear()
  
    put_html("

  \              Fun Fact Generator

")            # URL from where we will fetch the data     url = "https://uselessfacts.jsph.pl/random.json?language=en"            # Use GET request     response = requests.request("GET", url)              # Load the request in json file     data = json.loads(response.text)                     # we will need 'text' from the list, so      # pass 'text' in the list     useless_fact = data['text']                     # Put the facts in the blue colour     # Put the click me button     style(put_text(useless_fact), 'color:blue; font-size: 30px')     put_buttons(         [dict(label='Click me', value='outline-success',                color='outline-success')], onclick=get_fun_fact)         # Driver Function if __name__ == '__main__':            # Put a heading "Fun Fact Generator"     put_html("

  \              Fun Fact Generator

")            # hold the session for long time     # Put a Click me button     put_buttons(         [dict(label='Click me', value='outline-success',                color='outline-success')], onclick=get_fun_fact)   hold()


输出: