Advertisement
kompilainenn

Untitled

Mar 15th, 2023
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. from string import ascii_lowercase, digits
  2.  
  3. # здесь объявляйте классы TextInput и PasswordInput
  4. class TextInput:
  5.    
  6.     CHARS = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя " + ascii_lowercase
  7.     CHARS_CORRECT = CHARS + CHARS.upper() + digits
  8.    
  9.     def __init__(self,name,size =10):
  10.         if self.check_name(name):
  11.             self.name = name
  12.         self.size = size
  13.        
  14.     def get_html(self):
  15.         return f"<p class='login'>{self.name}: <input type='text' size={self.size} />"
  16.    
  17.     @classmethod
  18.     def check_name(cls, name):
  19.         if 3 > len(name) or len(name) > 50:
  20.             raise ValueError("некорректное поле name")
  21.         for char in name:
  22.             if char not in cls.CHARS_CORRECT:
  23.                 raise ValueError("некорректное поле name")
  24.         return True
  25.        
  26. class PasswordInput:
  27.     CHARS = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя " + ascii_lowercase
  28.     CHARS_CORRECT = CHARS + CHARS.upper() + digits
  29.  
  30.     def __init__(self, name, size = 10):
  31.         if self.check_name(name):
  32.             self.name = name
  33.         self.size = size
  34.                  
  35.     def get_html(self):
  36.         return f"<p class='password'>{self.name}: <input type='text' size={self.size} />"
  37.    
  38.     @classmethod
  39.     def check_name(cls, name):
  40.         if 3 > len(name) or len(name) > 50:
  41.             raise ValueError("некорректное поле name")
  42.         for char in name:
  43.             if char not in cls.CHARS_CORRECT:
  44.                 raise ValueError("некорректное поле name")
  45.         return True
  46.    
  47. class FormLogin:
  48.     def __init__(self, lgn, psw):
  49.         self.login = lgn
  50.         self.password = psw
  51.  
  52.     def render_template(self):
  53.         return "\n".join(['<form action="#">', self.login.get_html(), self.password.get_html(), '</form>'])
  54.  
  55.  
  56. # эти строчки не менять
  57. login = FormLogin(TextInput("Логин"), PasswordInput("Пароль"))
  58. html = login.render_template()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement