En simpel login-side er nem at oprette, og det er et godt sted at begynde at bygge din hjemmeside eller app.

Der er over en milliard hjemmesider på internettet. For at sikre brugernes konti er sikre, kræver mange webapplikationer – fra netbank til sociale medier – en login-side.

Lær, hvordan du opretter en simpel login-side ved hjælp af Tkinter-modulet, og gør dig bekendt med de grundlæggende koncepter for at bygge GUI-apps i Python.

Tkinter-modulet

Du kan bruge Tkinter til at bygge en login-side, der accepterer og validerer et brugernavn og en adgangskode. Tkinter tilbyder en række widgets som knapper, etiketter og tekstbokse, der gør det nemt at udvikle apps. Nogle applikationer, du kan udvikle ved hjælp af Tkinter, inkluderer en To-Do-applikation, Musik afspiller, a Pomodoro Timer App, og en Word Jumble spil.

For at installere Tkinter skal du åbne en terminal og køre:

pip installer tkinter

Sådan opbygger du en loginside ved hjælp af Python

Du kan finde kildekoden til at oprette en login-side ved hjælp af Python i denne GitHub-depot.

Importer de nødvendige biblioteker og initialiser rodvinduet. Indstil titlen og størrelsen på vinduet. Bruger konfigurere() funktion, skal du indstille baggrundsfarven.

importere tkinter
fra tkinter importere beskedboks
vindue = tkinter. Tk()
window.title("Loginside ved hjælp af Python")
window.geometry('750x550')
window.configure (bg='#8F00FF')

Definer en funktion, Log på() som vil træffe den vigtigste beslutning baseret på brugerens legitimationsoplysninger. Denne enkle demo hardkoder de gyldige legitimationsoplysninger; en rigtig app ville sandsynligvis hente dem fra en database.

Gem legitimationsoplysningerne og brug få() metode for hver Entry-widget til at hente de data, som brugeren har indtastet. I henhold til datavalideringen skal du vise en meddelelsesboks med den relevante titel og meddelelse.

defLog på():
brugernavn = "gøre brug af"
adgangskode = "muo"

hvis username_entry.get()==brugernavn og password_entry.get()==adgangskode:
messagebox.showinfo (title="Login lykkedes!", besked="Du er logget ind.")
andet:
messagebox.showerror (title="Fejl", besked="Ugyldigt login.")

Definer en Tkinter-ramme til at fungere som en forælder og giv den en baggrundsfarve.

ramme = tkinter. Ramme (bg='#8F00FF')

Definer tre etiketter for login, brugernavn og adgangskode. Send det overordnede vindue, du vil placere etiketterne i, den tekst, den skal vise, baggrundsfarven, skriftfarven og den skrifttype, den skal have.

login_label = tkinter. Etiket (ramme, tekst="Loginside ved hjælp af Python", bg='#000000', fg="#DC143C", skrifttype=("Arial", 30))
brugernavn_etiket = tkinter. Etiket (ramme, tekst="Brugernavn", bg='#8F00FF', fg="#FFFFFF", skrifttype=("Arial", 16, 'fremhævet'))
password_label = tkinter. Etiket (ramme, tekst="Adgangskode", bg='#8F00FF', fg="#FFFFFF", skrifttype=("Arial", 16, 'fremhævet'))

Definer to indgangswidgets for at få data fra brugeren. Indstil det overordnede vindue, du vil placere det i, sammen med skrifttypestilene. Brug at vise attribut som en stjerne for at skjule adgangskoden, som brugeren indtaster på skærmen.

brugernavn_indgang = tkinter. Indtastning (ramme, skrifttype=("Arial", 16))
password_entry = tkinter. Indgang (ramme, vis="*", skrifttype=("Arial", 16))

Definer en knap til login, der accepterer det overordnede vindue som den ramme, du definerede tidligere, teksten det skal vises, baggrundsfarven, skrifttypefarven, skrifttypestil og den kommando, den skal udføre, hvornår klikket.

login_button = tkinter. Knap (ramme, tekst="Log på", bg="#DC143C", fg="#FFFFFF", skrifttype=("Arial", 16), kommando=login)

Brug grid manager til at placere de tre etiketter, to poster og en login-knap i et organiseret tabelformat. Login-etiketten vil fungere som en overskrift og optage begge kolonner. Indstillingen sticky angiver, hvilken kant af cellen widgetten skal holde sig til. Ved at videregive det som nyheder (nord-øst-vest-syd), centrerer programmet teksten i både vandret og lodret retning.

Placer etiketterne på venstre side, den ene under den anden, og følg det samme for indtastningswidgets på højre side. I lighed med overskriften skal du placere login-knappen, der optager begge kolonner. Giv passende polstring i y-retningen til alle widgets.

login_label.grid (række=0, kolonne=0, kolonnespan=2, klæbrig="nyheder", pady=40)
brugernavn_etiket.gitter (række=1, kolonne=0)
username_entry.grid (række=1, kolonne=1, pady=20)
password_label.grid (række=2, kolonne=0)
password_entry.grid (række=2, kolonne=1, pady=20)
login_button.grid (række=3, kolonne=0, kolonnespan=2, pady=30)

Brug pakke() at organisere alle widgets i blokke og køre Tkinter event loop og lytte efter begivenheder, indtil du lukker vinduet.

frame.pack()
window.mainloop()

Sæt al koden sammen, og din login-side er klar til brug.

Eksempeloutput fra appen loginside

Når du kører programmet og indtaster de gyldige legitimationsoplysninger, viser programmet en meddelelsesboks om, at brugeren kan logge på.

Når du kører programmet med andre legitimationsoplysninger, viser meddelelsesboksen en fejl vedrørende login som en ugyldig.

Forbedring af en Python-loginside

Du kan bruge en database såsom MySql til at hente posterne og validere dem i forhold til brugerens legitimationsoplysninger. Det mysql.connector biblioteket hjælper dig med at etablere en forbindelse mellem din Python Tkinter-applikation og MySql-databasen.

For forbedret brugergrænseflade kan du udforske customtkinter modul. Det er udelukkende bygget på Tkinter-modulet og hjælper dig med at skabe moderne fuldt tilpassede widgets, der ikke er tilgængelige som en del af standard Tkinter-biblioteket. Kombinationen af ​​disse to biblioteker vil forstærke dine GUI-programmeringsfærdigheder og sætte som et springbræt i at skabe mere sofistikerede applikationer.