Cree un formulario de registro usando el módulo PyWebIO en Python

En este artículo, vamos a crear un formulario de registro utilizando el módulo PyWebIO. Este es un módulo de Python que se utiliza principalmente para crear interfaces simples e interactivas en la web local utilizando la programación de Python. 

Este formulario tomará como entrada el nombre de usuario, el nombre, la contraseña, el correo electrónico y el enlace del sitio web. Hablando de contraseñas, también verificará su contraseña nuevamente para confirmar si su contraseña es correcta o no. También validará su número de teléfono, enlace del sitio web, dirección de correo electrónico. Después de eso, obtendrá el botón de opción que consiste en Sexo, y también obtendrá la sección de comentarios para que pueda escribir sus comentarios.

Elementos de formulario 

Para crear un formulario adecuado con validaciones, aprenderemos diferentes elementos del formulario uno por uno con ejemplos.

1. input_group: este elemento se utiliza para obtener las entradas del grupo. Cuando usamos input_group , debemos proporcionar el parámetro de nombre a cada función de entrada para identificar los elementos de entrada en el resultado.

Sintaxis: input_group(“Título”, [input(‘Cualquier nombre’, nombre=’Cualquier cosa’), input(‘Cualquier nombre’, nombre=’Cualquier cosa’)])

Python3

info = input_group("Group inputs", [
     input('Username', name='username'),
     input('Password', name='pass')])

Producción: 

2. entrada: este elemento se utiliza para tomar todo tipo de entradas del usuario desde el navegador.

Sintaxis: input(‘Algo de texto’)

Python3

input("Your name")

Producción: 

3. tipo: Esto se define dentro de la función de entrada o función input_group . Esto depende de la elección del usuario si el usuario quiere un número en la entrada o un texto en la entrada. Si el tipo es igual al número, solo aceptará números y un caso similar para el texto.

Sintaxis: 

input(‘Algo de texto’, type=TEXT)

input(‘Algo de texto’, type=NUMBER)

input(‘Algo de texto’, tipo=CONTRASEÑA)

Python3

input('Name', type=TEXT)
input('PIN', type=NUMBER)
input('Password', type=PASSWORD)

Producción: 

4. requerido: si requerido es verdadero, eso significa que debe ingresar algo, no podemos dejarlo en blanco, de lo contrario, será a través de un error llamado «Por favor complete este campo». Por defecto, es falso.

Sintaxis: input(‘Algo de texto’, requerido=Verdadero)

Python3

input('Name', required=True)

Producción: 

5. validar: este elemento recibe la entrada como un parámetro, cuando el valor de entrada es válido, devuelve True, cuando la entrada del usuario no es válida, devuelve un mensaje de error.

Sintaxis: input(‘Algo de texto’, validar=es_válido)

Python3

def is_valid(data):
    if data <= 0:
        return 'Age cannot be negative!'
  
input('Age', type=NUMBER, validate=is_valid)

Producción: 

6. cancelable: si el formulario se puede cancelar. El valor predeterminado es Falso. Si cancelable=True, se mostrará un botón «Cancelar» en la parte inferior del formulario.

Sintaxis: input_group(“Título”, [input(‘Cualquier nombre’, nombre=’Cualquier cosa’), input(‘Cualquier nombre’, nombre=’Cualquier cosa’)], cancelable=True)

Python3

input_group("Info", [input('Name', name='name'),input('PIN ', name='pin')], cancelable=True)

Producción: 

7. PlaceHolder: este elemento se usa solo en la función input_group, esto se usa para mostrar un texto muy claro.

Sintaxis: input(‘Algún texto’, placeholder=”algún texto”)

Python3

input('Name', placeholder="Please Enter your name")

Producción: 

8. radio: El botón de radio se utiliza cuando tenemos que elegir una sola opción entre las muchas opciones, es decir, solo se puede seleccionar una sola.

Sintaxis: radio(“Algo de texto”, options=[‘Opción 1’, ‘Opción 2’])

Python3

radio("Gender", options=['Male', 'Female'])

Producción: 

9. seleccionar:   Esto también se llama selección desplegable. De forma predeterminada, solo se puede seleccionar una opción a la vez. También puede seleccionar varias opciones configurando el parámetro «múltiple» en Verdadero.

Sintaxis: select(“Algo de texto”, opciones=[‘Opción 1’, ‘Opción 2’, ‘Opción 3’, ‘Opción 4’], múltiple=Verdadero)

Python3

select("Tech Stack", options=[
  'C Programming', 'Python', 'Web Development', 'Android Development'])

Producción: 

10. área de texto: este elemento se utiliza para realizar entradas de varias líneas en un área de entrada de texto. La fila es un elemento definido dentro del área de texto que se utiliza para varias líneas de texto visibles.

Sintaxis: área de texto («Algo de texto», filas = 3)

Python3

textarea("Comments/Questions", rows=3)

Producción: 

11. casilla de verificación: la casilla de verificación permite a los usuarios seleccionar/deseleccionar múltiples valores, tenemos que proporcionar las opciones para que el usuario pueda seleccionar cualquier valor.

Sintaxis: checkbox(“Algo de texto”, options=[‘Opción 1’, ‘Opción 2’, ‘Opción 3’]) 

Python3

checkbox("Languages", options=['Hindi', 'English', 'French'])

Producción: 

12. ventana emergente: la ventana emergente se utiliza para producir una salida en forma de ventana emergente, no se pueden mostrar varias ventanas emergentes a la vez. Antes de mostrar una nueva ventana emergente, la ventana emergente existente en la página se cerrará automáticamente o puede cerrarla manualmente.

Sintaxis: popup(“Título”, “Texto”)

Python3

popup("Who are you?", "Geeks for Geeks")

Producción: 

Forma completa

Python3

# Import following modules
from pywebio.input import *
from pywebio.output import *
from pywebio.session import *
import re
  
# For checking Email, whether Valid or not.
regex = '^(\w|\.|\_|\-)+[@](\w|\_|\-|\.)+[.]\w{2,3}$'
  
# For checking Phone Number, whether Valid or 
# not.
Pattern = re.compile("(0/91)?[6-9][0-9]{9}")
  
# For Checking URL, whether valid or not
regex_1 = ("((http|https)://)(www.)?" + 
           "[a-zA-Z0-9@:%._\\+~#?&//=]" +
           "{2,256}\\.[a-z]" +
           "{2,6}\\b([-a-zA-Z0-9@:%" +
           "._\\+~#?&//=]*)")
Pattern_1 = re.compile(regex_1)
  
  
def check_form(data):
    
    # for checking Name
    if data['name'].isdigit():
        return ('name', 'Invalid name!')
        
    # for checking UserName
    if data['username'].isdigit():
        return ('username', 'Invalid username!')
        
    # for checking Age
    if data['age'] <= 0:
        return ('age', 'Invalid age!')
        
    # for checking Email
    if not (re.search(regex, data['email'])):
        return ('email', 'Invalid email!')
      
    # for checking Phone Number
    if not (Pattern.match(str(data['phone']))) 
    or len(str(data['phone'])) != 10:
        return ('phone', 'Invalid phone!')
      
    # for checking Website URL
    if not re.search(Pattern_1, data['website']):
        return ('website', 'Invalid URL!')
        
    # for matching Passwords
    if data['pass'] != data['passes']:
        return ('passes', "Please make sure your passwords match")
  
  
# Taking input from the user
data = input_group("Fill out the form:", [
    input('Username', name='username', type=TEXT,
          required=True, PlaceHolder="@username"),
    
    input('Password', name='pass', type=PASSWORD,
          required=True, PlaceHolder="Password"),
    
    input('Confirm Password', name='passes', type=PASSWORD,
          required=True, PlaceHolder="Confirm Password"),
    
    input('Name', name='name', type=TEXT, required=True, 
          PlaceHolder="name"),
    
    input('Phone', name='phone', type=NUMBER,
          required=True, PlaceHolder="12345"),
    
    input('Email', name='email', type=TEXT,
          required=True, PlaceHolder="user@gmail.com"),
    
    input('Age', name='age', type=NUMBER, required=True,
          PlaceHolder="age"),
    
    input('Portfolio website', name='website', type=TEXT,
          required=True, PlaceHolder="www.XYZ.com")
    
], validate=check_form, cancelable=True)
  
# Create a radio button
gender = radio("Gender", options=['Male', 'Female'], required=True)
  
# Create a skills markdown
skills = select("Tech Stack", options=[
  'C Programming', 'Python', 'Web Development', 'Android Development'],
                required=True)
  
# Create a textarea
text = textarea("Comments/Questions", rows=3,
                placeholder="Write something...", required=True)
  
# Create a checkbox
agree = checkbox("Agreement", options=[
    'I agree to terms and conditions'], required=True)
  
# Display output using popup
popup("Your Details",
      f"Username: @{data['username']}\nName: {data['name']}\
      \nPhone: {str(data['phone'])}\nEmail: {data['email']}\
      \nAge: {str(data['age'])}\nWebsite: {data['website']}\
      \nGender: {gender}\nSkill: {skills}\nComments: {text}",
      closable=True)

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 *