Een eenvoudige inlogpagina is eenvoudig te maken en het is een geweldige plek om te beginnen met het bouwen van uw website of app.

Er zijn meer dan een miljard websites op internet. Om ervoor te zorgen dat de accounts van gebruikers veilig zijn, hebben veel webapplicaties, van online bankieren tot sociale media, een inlogpagina nodig.

Leer hoe u een eenvoudige inlogpagina kunt maken met behulp van de Tkinter-module en maak uzelf vertrouwd met de basisconcepten van het bouwen van GUI-apps in Python.

De Tkinter-module

U kunt Tkinter gebruiken om een ​​inlogpagina te bouwen die een gebruikersnaam en wachtwoord accepteert en valideert. Tkinter biedt een verscheidenheid aan widgets zoals knoppen, labels en tekstvakken die het gemakkelijk maken om apps te ontwikkelen. Sommige applicaties die u met Tkinter kunt ontwikkelen, zijn onder meer een To-Do-applicatie, Muziekspeler, A Pomodoro Timer-app, en een Word Jumble-spel.

Om Tkinter te installeren, opent u een terminal en voert u het volgende uit:

instagram viewer
pip installeer tkinter

Hoe een inlogpagina te bouwen met behulp van Python

Hierin vindt u de broncode voor het maken van een inlogpagina met behulp van Python GitHub-opslagplaats.

Importeer de vereiste bibliotheken en initialiseer het hoofdvenster. Stel de titel en de grootte van het venster in. De... gebruiken configureren() functie, stelt u de achtergrondkleur in.

importeren tkinter
van tkinter importeren berichten box
venster = tkinter. Tk()
venster.titel("Inlogpagina met Python")
venster.geometrie('750x550')
venster.configure (bg='#8F00FF')

Definieer een functie, Log in() die de belangrijkste beslissing zal nemen op basis van de inloggegevens van de gebruiker. Deze eenvoudige demo hardcodeert de geldige inloggegevens; een echte app zou ze waarschijnlijk uit een database halen.

Sla de inloggegevens op en gebruik de krijgen() methode van elke invoerwidget om de gegevens op te halen die de gebruiker heeft ingevoerd. Geef volgens de gegevensvalidatie een berichtvenster weer met de juiste titel en bericht.

defLog in():
gebruikersnaam = "gebruikmaken van"
wachtwoord = "moe"

als gebruikersnaam_entry.get()==gebruikersnaam En password_entry.get()==wachtwoord:
messagebox.showinfo (titel="Succesvol ingelogd!", bericht="U bent succesvol ingelogd.")
anders:
messagebox.showerror (titel="Fout", bericht="Ongeldige login.")

Definieer een Tkinter-frame om als ouder te fungeren en geef het een achtergrondkleur.

frame = tkinter. Kader (bg='#8F00FF')

Definieer drie labels voor aanmelding, gebruikersnaam en wachtwoord. Geef het bovenliggende venster door waarin u de labels wilt plaatsen, de tekst die moet worden weergegeven, de achtergrondkleur, de letterkleur en de letterstijl die het moet hebben.

login_label = tkinter. Label (kader, tekst="Inlogpagina met behulp van Python", bg='#000000', fg="#DC143C", lettertype=("Ariel", 30))
gebruikersnaam_label = tkinter. Label (kader, tekst="Gebruikersnaam", bg='#8F00FF', fg="#FFFFFF", lettertype=("Ariel", 16, 'vetgedrukt'))
wachtwoord_label = tkinter. Label (kader, tekst="Wachtwoord", bg='#8F00FF', fg="#FFFFFF", lettertype=("Ariel", 16, 'vetgedrukt'))

Definieer twee invoerwidgets om de gegevens van de gebruiker te krijgen. Stel het bovenliggende venster in waarin u het wilt plaatsen, samen met de lettertypestijlen. Gebruik de show attribuut als een asterisk om het wachtwoord te verbergen dat de gebruiker op het scherm typt.

gebruikersnaam_entry = tkinter. Invoer (frame, font=("Ariel", 16))
password_entry = tkinter. Invoer (frame, show="*", lettertype=("Ariel", 16))

Definieer een knop om in te loggen die het bovenliggende venster accepteert als het frame dat u eerder hebt gedefinieerd, de tekst it moet weergeven, de achtergrondkleur, de letterkleur, de letterstijl en de opdracht die moet worden uitgevoerd wanneer geklikt.

login_button = tkinter. Knop (kader, tekst="Log in", bg="#DC143C", fg="#FFFFFF", lettertype=("Ariel", 16), commando=login)

Gebruik de rastermanager om de drie labels, twee vermeldingen en een inlogknop in een georganiseerde tabelindeling te plaatsen. Het inloglabel fungeert als koptekst en beslaat beide kolommen. De plakkerige optie geeft aan aan welke rand van de cel de widget moet blijven plakken. Bij het doorgeven als nieuws (noordoost-west-zuid), centreert het programma de tekst in zowel horizontale als verticale richting.

Plaats de labels aan de linkerkant onder elkaar en volg hetzelfde voor de invoerwidgets aan de rechterkant. Plaats, net als bij de koptekst, de inlogknop in beide kolommen. Geef alle widgets de juiste opvulling in de y-richting.

login_label.grid (rij=0, kolom=0, kolomoverspanning=2, plakkerig="nieuws", padie=40)
gebruikersnaam_label.grid (rij=1, kolom=0)
gebruikersnaam_entry.grid (rij=1, kolom=1, padie=20)
password_label.grid (rij=2, kolom=0)
password_entry.grid (rij=2, kolom=1, padie=20)
login_button.grid (rij=3, kolom=0, kolomoverspanning=2, padie=30)

Gebruik de pak() om alle widgets in blokken te ordenen en de Tkinter-gebeurtenislus uit te voeren en naar gebeurtenissen te luisteren totdat u het venster sluit.

frame.pack()
venster.mainloop()

Zet alle code bij elkaar en uw inlogpagina is klaar voor gebruik.

Voorbeelduitvoer van de inlogpagina-app

Bij het uitvoeren van het programma en het invoeren van de geldige inloggegevens, geeft het programma een berichtvenster weer dat de gebruiker zich succesvol kan aanmelden.

Bij het uitvoeren van het programma met een andere inloggegevens, geeft het berichtvenster een fout weer met betrekking tot de aanmelding als ongeldig.

Een Python-inlogpagina verbeteren

U kunt een database zoals MySql gebruiken om de records op te halen en te valideren tegen de gebruikersreferenties. De mysql.connector bibliotheek helpt u een verbinding tot stand te brengen tussen uw Python Tkinter-toepassing en de MySql-database.

Voor een verbeterde gebruikersinterface kunt u de customtkinter moduul. Het is puur gebouwd op de Tkinter-module en helpt u bij het maken van moderne, volledig aanpasbare widgets die niet beschikbaar zijn als onderdeel van de standaard Tkinter-bibliotheek. Door deze twee bibliotheken te combineren, vergroot u uw GUI-programmeervaardigheden en vormt u een springplank naar het creëren van meer geavanceerde toepassingen.