Fun Fact Generator Web App in Python (original) (raw)

Last Updated : 09 Jul, 2024

In this article, we will discuss how to create a Fun Fact Generator Web App in Python using the PyWebio module. Essentially, it will create interesting facts at random and display them on the web interface. This script will retrieve data from **uselessfacts.jsph.pl with the help of **GET method, and we will use the **requests and the **JSON module to acquire and load the data respectively. After the data has been loaded, just pass the text within the dictionary so that we can only get the jokes. For creating a simple and interactive interface on the web, we will use the **PyWebIO module.

PyWebIO contains functions for getting user input and output on the browser, turning the browser into a “rich text terminal”, and can be used to build simple web applications or browser-based GUI applications. With this module, anyone can produce a web application without any prior knowledge or overhead of HTML and JS.

It can be installed using the below command:

pip install pywebio

Getting Started

Follow the below steps to create a fun factor generator web app.

Given below is the complete implementation using the above approach.

**Program:

Python `

Import the necessary modules

import json import requests from pywebio.input import * from pywebio.output import * from pywebio.session import *

def get_fun_fact(_): # Clear the screen clear()

# Put HTML content for the fun fact generator header
put_html(
    '<p align="left">'
    '<h2><img src="https://media.geeksforgeeks.org/wp-content/uploads/20210720224119/MessagingHappyicon.png" width="7%"> Fun Fact Generator</h2>'
    '</p>'
)

# URL from where we will fetch the data
url = "https://uselessfacts.jsph.pl/random.json?language=en"

# Use GET request
response = requests.get(url)

# Load the request in json file
data = json.loads(response.text)

# We will need 'text' from the data
useless_fact = data['text']

# Put the fact in blue color and increase the font size
style(put_text(useless_fact), 'color:blue; font-size: 30px')

# Put the "Click me" button
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 a long time and put the "Click me" button
put_buttons(
    [dict(label='Click me', value='outline-success', color='outline-success')],
    onclick=get_fun_fact
)
hold()

`

**Output:

Similar Reads

Projects for Beginners
























Projects for Intermediate


















Web Scraping












Automating boring Stuff Using Python

















Tkinter Projects



































Turtle Projects












OpenCV Projects

































Python Django Projects














Python Text to Speech and Vice-Versa