Рубрики
Без рубрики

Python Tkinter: Простой Срез Электронной Почты

Привет, ученик! Сегодня мы собираемся создать простой срез электронной почты, используя модуль tkinter в Python. Прежде чем мы начнем проект, сообщите нам, что такое электронное письмо

Автор оригинала: Pankaj Kumar.

Привет, ученик! Сегодня мы собираемся создать простой срез электронной почты, используя модуль tkinter в Python . Прежде чем мы начнем проект, сообщите нам, что такое срез электронной почты.

Что такое слайсер электронной почты?

Email Slicer-это простой инструмент, в котором адрес электронной почты предоставляется в качестве входных данных, а в качестве выходных данных приложение возвращает имя пользователя и домен указанного адреса электронной почты. Он использует операции нарезки Python .

Кроме того, прежде чем мы начнем писать код, позвольте мне показать вам, как будет выглядеть ваш конечный выходной экран. Посмотрите на изображение ниже.

Слайсер электронной почты Начального экрана

Выглядит довольно круто, правда? Итак, давайте начнем!

Создание среза электронной почты на Python

При создании слайсера электронной почты давайте сначала спроектируем экран, а затем объявим функции для функций кнопок.

1. Проектирование экрана

Чтобы создать экран, импортируем модуль Tkinter , а затем создадим пустое окно для начала. На этом этапе мы также настроим некоторые изменения, такие как цвет фона и имя приложения. Приведенный ниже код поможет вам сделать то же самое.

import tkinter as tk
window = tk.Tk()
window.geometry("480x440")
window.config(bg="#BE361A")
window.resizable(width=False,height=False)
window.title('Simple Email Slicer')

Здесь мы сначала импортировали модуль. Затем мы создали окно, установили размеры окна и сделали цвет фона оранжевым (вы можете настроить свой экран в соответствии с вашими предпочтениями!).

Мы убедились, что размеры в целом остаются постоянными, поэтому мы установили изменяемые атрибуты в значение “False”. Мы также устанавливаем название приложения в качестве имени приложения. И последнее, но не менее важное: вам нужно посмотреть в окно, не так ли?

Поэтому для этого мы запускаем функцию mainloop . И результат должен выглядеть примерно так, как показано на рисунке ниже!

Слайсер электронной почты Screen1

2. Добавление необходимых элементов в наше окно

Теперь важной частью является добавление всех необходимых элементов в наше приложение. Элементы, которые нам требуются для приложения, являются:

  1. Этикетки
  2. Поле ввода (Для ввода)
  3. Кнопки
  4. Текстовое поле (для печати выходных данных)

Теперь давайте сначала добавим всю информацию о приложении. Теперь вы можете изменить его, как хотите. Я сохраню их в соответствии со своими предпочтениями. Код для добавления необходимых меток показан ниже.

import tkinter as tk
window = tk.Tk()
window.geometry("480x440")
window.config(bg="#BE361A")
window.resizable(width=False,height=False)
window.title('Simple Email Slicer')

greeting = tk.Label(text="Welcome to A Simple Email Slicer!",font=(12),foreground="white",background="black")
Info = tk. Label(text="Enter your email id click the done button!\n The application will extract your username and domain name.",foreground= "white",background="#BE361A",font=(10))

greeting.pack()
Info.pack()

window.mainloop()

Добавленные строки были выделены для вашей справки. Очевидно, что объявление этикетки и упаковка идут до того, как мы запустим окно. Если вы заметили, я также внес некоторые изменения, такие как передний план и фон, а также размер шрифта. Опять же, вы можете выбрать все изменения в соответствии с вашими требованиями. Новые результаты заключаются в следующем:

Экран 2 Слайсер электронной почты

Точно так же, как мы добавили метки, мы добавим кнопки, а также поля ввода. К настоящему времени, я предполагаю, что вы знакомы со всеми этими вещами. Так что сейчас я покажу вам весь код дизайна!

import tkinter as tk
window = tk.Tk()
window.geometry("480x440")
window.config(bg="#BE361A")
window.resizable(width=False,height=False)
window.title('Simple Email Slicer')

# All the Labels
greeting = tk.Label(text="Welcome to A Simple Email Slicer!",font=(12),foreground="white",background="black")
Info = tk. Label(foreground= "white",background="#BE361A",font=(10),text="Enter your email id click the done button!\n The application will extract your username and domain name.")
entry_label = tk.Label(foreground= "white",font=(10),background="black",text="Enter Your Email Id: ")
result_label = tk.Label(font=(10),foreground= "white",background="black",text="The results are as follows:")
empty_label0=tk.Label(background="#BE361A")
empty_label1=tk.Label(background="#BE361A")
empty_label2=tk.Label(background="#BE361A")
empty_label3=tk.Label(background="#BE361A")
empty_label4=tk.Label(background="#BE361A")
empty_label5=tk.Label(background="#BE361A")

#The Entry box
entry = tk.Entry(font=(11),width=50,justify='center')

#The two Buttons
button = tk.Button(text="Done!",font=(11))
reset=tk.Button(text="Reset!",font=(11))

#Result
text_box = tk.Text(height=5,width=50)

#Packing Everything Together
empty_label0.pack()
greeting.pack()
Info.pack()
empty_label1.pack()
entry_label.pack()
empty_label4.pack()
entry.pack()
empty_label2.pack()
button.pack()
empty_label5.pack()
reset.pack()
empty_label3.pack()
result_label.pack()
text_box.pack()

window.mainloop()

Теперь вы, возможно, заметили некоторые пустые метки, которые кажутся довольно бесполезными, но они полезны для добавления разрывов строк между различными элементами, когда мы используем pack для размещения элементов, а не place (требуются координаты x и y). А теперь позвольте мне показать вам, как выглядит наш последний экран!

Полный Дизайн Слайсера Электронной Почты

Итак, теперь, когда мы закончили с дизайном, кнопки вообще ничего не делают. Для этого мы добавим в наш код некоторые дополнительные функции и переменные.

3. Добавление функциональных возможностей к кнопкам

Прежде чем перейти непосредственно к кнопкам, нам нужно место для хранения вашего адреса электронной почты, поэтому мы создаем “Строковую переменную” для хранения всего, что введено в поле ввода. Мы используем String Var и добавляем атрибут с именем текстовая переменная в созданное поле ввода. Я показываю вам только ту часть, которую вам нужно изменить для того же самого.

e1=tk.StringVar()
entry = tk.Entry(font=(11),width=50,justify='center',textvariable=e1)

Функция 1: Получить имя пользователя и домен

Теперь, когда хранение адреса электронной почты завершено! Мы также создадим две функции для этих двух кнопок. Первая функция возьмет адрес электронной почты из переменной e1, которую мы создали ранее, а затем использует операции stripping на адресе электронной почты, чтобы извлечь имя пользователя и домен.

Код для выполнения тех же операций показан ниже.

def result():
    try:
        email=entry.get()
        inp_email = email.strip()
        username = inp_email[0:inp_email.index('@')]
        domain = inp_email[inp_email.index('@') + 1:]
        text_box.delete('1.0', tk.END)
        msg = 'Email entered was: {}\nYour email username is {}\nAnd your email domain server is {}'
        msg_formatted = msg.format(email,username,domain)
        text_box.insert(tk.END,msg_formatted)
        entry.delete(0, 'end')
    except:
        text_box.delete('1.0', tk.END)
        text_box.insert(tk.END,"ERROR!")

Теперь возникает вопрос: “Почему я использовал блок try-except здесь?”

Причина в том, что если человек не введет действительный адрес электронной почты, код может привести к серии необработанных ошибок, и даже пользователь не поймет, что не так с приложением.

Поэтому, чтобы избежать этой ситуации, мы следим за тем, чтобы, если пользователь введет неверный идентификатор электронной почты, блок будет печатать сообщение “Ошибка” .

Теперь операции довольно просты. получить электронную почту из переменной поля ввода, удалить строку, чтобы удалить все пробелы (если таковые имеются).

Теперь, чтобы получить имя пользователя slice строку, пока мы не дойдем до символа ‘@’ , а остальное (за исключением символа@) войдет в доменное имя.

Теперь последняя операция-использовать созданное нами текстовое поле|/. Чтобы быть в безопасности, мы удаляем все, что находится внутри текстового поля (если таковое имеется), а затем вставляем сообщение, которое сообщает пользователю о найденном домене и имени пользователя. Мы также позаботимся о том, чтобы поле ввода было чистым для следующего ввода. В случае обнаружения какой-либо недопустимой записи запускается блок except , который выводит сообщение ‘Error’ .

Функция 2: Сброс приложения

Теперь, после успешного выполнения первой функции, функция сброса становится довольно простой. Все, что делает функция сброса, – это очищает текстовое поле и поле ввода. Код для того же самого показан ниже.

def reset_all():
    text_box.delete('1.0', tk.END)
    entry.delete(0, 'end')

Но кнопки пока не работают! Почему? Потому что мы не добавили функции в определения кнопок. В принципе, все, что вам нужно сделать, это добавить атрибут имени command в определения кнопок. Код ниже отображает то же самое.

button = tk.Button(text="Done!",command=result,font=(11))
reset=tk.Button(text="Reset!",command=reset_all,font=(11))

Потрясающе! Теперь мы все готовы запустить наше приложение!

Окончательный код и вывод

import tkinter as tk
window = tk.Tk()
window.geometry("480x440")
window.config(bg="#BE361A")
window.resizable(width=False,height=False)
window.title('Simple Email Slicer')

def result():
    try:
        email=entry.get()
        inp_email = email.strip()
        username = inp_email[0:inp_email.index('@')]
        domain = inp_email[inp_email.index('@') + 1:]
        text_box.delete('1.0', tk.END)
        msg = 'Email entered was: {}\nYour email username is {}\nAnd your email domain server is {}'
        msg_formatted = msg.format(email,username,domain)
        text_box.insert(tk.END,msg_formatted)
        entry.delete(0, 'end')
    except:
        text_box.delete('1.0', tk.END)
        text_box.insert(tk.END,"ERROR!")

def reset_all():
    text_box.delete('1.0', tk.END)
    entry.delete(0, 'end')

# Labels
greeting = tk.Label(text="Welcome to A Simple Email Slicer!",font=(12),foreground="white",background="black")
Info = tk. Label(foreground= "white",background="#BE361A",font=(10),text="Enter your email id click the done button!\n The application will extract your username and domain name.")
entry_label = tk.Label(foreground= "white",font=(10),background="black",text="Enter Your Email Id: ")
result_label = tk.Label(font=(10),foreground= "white",background="black",text="The results are as follows:")
empty_label0=tk.Label(background="#BE361A")
empty_label1=tk.Label(background="#BE361A")
empty_label2=tk.Label(background="#BE361A")
empty_label3=tk.Label(background="#BE361A")
empty_label4=tk.Label(background="#BE361A")
empty_label5=tk.Label(background="#BE361A")

#Entry
e1=tk.StringVar()
entry = tk.Entry(font=(11),width=50,justify='center',textvariable=e1)

#Buttons
button = tk.Button(text="Done!",command=result,font=(11))
reset=tk.Button(text="Reset!",command=reset_all,font=(11))

#Result
text_box = tk.Text(height=5,width=50)

#Packing Everything Together
empty_label0.pack()
greeting.pack()
Info.pack()
empty_label1.pack()
entry_label.pack()
empty_label4.pack()
entry.pack()
empty_label2.pack()
button.pack()
empty_label5.pack()
reset.pack()
empty_label3.pack()
result_label.pack()
text_box.pack()

window.mainloop()

На рисунке ниже показан вывод кода при запуске на образце адреса электронной почты. Проверьте это с помощью различных адресов электронной почты самостоятельно!

Выходной Слайсер Электронной почты

Вывод

Поздравляю! Вы успешно научились самостоятельно реализовывать простой срез электронной почты! Надеюсь, вы чему-нибудь научились! Счастливого кодирования!