¿Cómo crear la aplicación web de calculadora AGE PyWebIO en Python?

En este artículo, vamos a crear una Calculadora de EDAD que mostrará su edad en años, meses y días con la ayuda de la fecha actual. Usaremos el módulo PyWebIO para crear una interfaz simple e interactiva en la web. Este es un módulo de Python que se utiliza principalmente para crear interfaces simples e interactivas en la web utilizando la programación de Python. Se puede instalar usando el siguiente comando:

pip install pywebio

Implementación paso a paso:

Paso 1: Importe todos los módulos requeridos.

Python3

# Import the following modules
from dateutil.relativedelta import relativedelta
from datetime import datetime
from time import strptime
from pywebio.input import *
from pywebio.output import *
from pywebio.session import *
import time

Paso 2: Obtener la hora actual y recibir información del usuario.

Python3

# Getting Current time.
date = datetime.now().strftime("%d/%m/%Y")  
  
# Taking age from the user
DOB = input("", placeholder = "Your Birth Date(dd/mm/yyyy)")

Paso 3: Comprobar si el formato de edad es correcto o no.

Python3

try:
    # Check whether the input age format 
    # is same as given format
    val = strptime(DOB, "%d/%m/%Y")
except:
    
    # If format is different, then through 
    # an error.
    put_error("Alert! This is not the right format")
    time.sleep(3)  # sleep for 3 seconds
    continue

Paso 4: Divida la fecha de nacimiento del usuario y la fecha actual por ‘/’. Y luego Typecast todas las partes divididas en el número entero. Intercambie meses y años tanto para la fecha de nacimiento del usuario como para la fecha actual.

Python3

# Split the age by '/'
in_date = DOB.split('/')
  
# split the todays date by '/'
date = date.split('/')  
  
# Typecast all the converted part 
# into the int.
in_date = [int(i) for i in in_date] 
date = [int(i) for i in date] 
newdate = []  
  
# Swap days with years
in_date[0], in_date[2] = in_date[2], in_date[0]  
  
# Swap days with years
date[0], date[2] = date[2], date[0]

Paso 5: compruebe si el año actual es menor que el año de nacimiento del usuario. Si el año actual es más pequeño que por un error.

Python3

if in_date <= date:
        now = datetime.strptime(DOB, "%d/%m/%Y")
      
        # Display output in a pop window
        popup("Your Age",k
              [put_html("<h4>"f"{relativedelta(datetime.now(),now).years} Years</br> \
              {relativedelta(datetime.now(),now).months} Months</br>\
              {relativedelta(datetime.now(),now).days} Days""</h4>"), put_buttons(
                  ['Close'], onclick=lambda _: close_popup())], implicit_close=True)
else:
        # If you input the year greater than current year
        put_warning(
            f"No result found, this is {date[0]}, and you can't be in {in_date[0]}.")

Código completo:

Python3

# Import the following modules
from dateutil.relativedelta import relativedelta
from datetime import datetime
from time import strptime
from pywebio.input import *
from pywebio.output import *
from pywebio.session import *
import time
  
# Run infinite loop
while True:  
    clear() 
      
    # Put a heading Age Calculator
    put_html("<p align=""left""><h4> AGE CALCULATOR</h4></p>
")
      
    # Getting Current time.
    date = datetime.now().strftime("%d/%m/%Y")  
      
    # Taking age from the user
    DOB = input("", placeholder="Your Birth Date(dd/mm/yyyy)")
    try:
        
        # Check whether the input age
        # format is same as given format
        val = strptime(DOB, "%d/%m/%Y")
    except:
        
        # If format is different, then through an error.
        put_error("Alert! This is not the right format")
          
        # sleep for 3 seconds
        time.sleep(3)  
        continue
    in_date = DOB.split('/') 
    date = date.split('/')  
      
    # Typecast all the converted part into the int.
    in_date = [int(i) for i in in_date]
    date = [int(i) for i in date]
      
    # Define an empty list
    newdate = []  
      
    # Swap days with years
    in_date[0], in_date[2] = in_date[2], in_date[0]  
      
    # Swap days with years
    date[0], date[2] = date[2], date[0]  
    if in_date <= date:
        now = datetime.strptime(DOB, "%d/%m/%Y")
          
        # Display output
        popup("Your Age",
              [put_html("<h4>"f"{relativedelta(datetime.now(),now).years} Years</br> \
              {relativedelta(datetime.now(),now).months} Months</br>\
              {relativedelta(datetime.now(),now).days} Days""</h4>"), put_buttons(
                  ['Close'], onclick=lambda _: close_popup())], implicit_close=True)
    else:
        
        # If you input the year greater than current year
        put_warning(
            f"No result found, this is {date[0]}, and you can't be in {in_date[0]}.")
        time.sleep(3)
    clear()
    # Give user a choice
    choice = radio("Do you want to calculate again?",
                   options=['Yes', 'No'], required=True)
    if choice.lower() == 'yes':
        continue
    else:
        clear()
          
        # Show a toast notification
        toast("Thanks a lot!")  
        exit()

Producción: 

Publicación traducida automáticamente

Artículo escrito por gittysatyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *