أخر الاخبار

Simple Login Application in Python Tutorial with Source Code

 


ابدء:

أولاً ، سيتعين عليك تنزيل وتثبيت Python IDLE's ، وهنا رابط التطوير المتكامل وبيئة التعلم لبيثون https://www.python.org/downloads/.


تثبيت متصفح سكليتي

بعد تثبيت Python ، سنقوم الآن بتثبيت SQLite ، وهذا الرابط لمتصفح DB لـ SQLite https://sqlitebrowser.org/. ثم افتح SQLite وأنشئ قاعدة بيانات .


استيراد الوحدات

بعد إعداد التثبيت وقاعدة البيانات ، قم بتشغيل IDLE وانقر فوق ملف ثم ملف جديد. بعد ذلك ستظهر نافذة جديدة تحتوي على ملف أسود سيكون هذا هو محرر النصوص للبيثون.


ثم انسخ الكود الذي قدمته أدناه والصقه داخل محرر نصوص IDLE

  • from tkinter import *
  • import sqlite3

إعداد الإطار الرئيسي

بعد استيراد الوحدات ، سننشئ الآن الإطار الرئيسي للتطبيق. للقيام بذلك ، ما عليك سوى نسخ الكود أدناه ولصقه داخل محرر نصوص IDLE.


  • root = Tk()
  • root.title("Python: Simple Login Application")
  • width = 400
  • height = 280
  • screen_width = root.winfo_screenwidth()
  • screen_height = root.winfo_screenheight()
  • x = (screen_width/2) - (width/2)
  • y = (screen_height/2) - (height/2)
  • root.geometry("%dx%d+%d+%d" % (width, height, x, y))
  • root.resizable(0, 0)

تصميم التخطيط

بعد إنشاء الإطار الرئيسي ، سنضيف الآن بعض التخطيط إلى التطبيق. ما عليك سوى نسخ الكود أدناه ولصقه داخل محرر نصوص IDLE.


  1. #==============================VARIABLES======================================
  2. USERNAME = StringVar()
  3. PASSWORD = StringVar()
  4.  
  5. #==============================FRAMES=========================================
  6. Top = Frame(root, bd=2, relief=RIDGE)
  7. Top.pack(side=TOP, fill=X)
  8. Form = Frame(root, height=200)
  9. Form.pack(side=TOP, pady=20)
  10.  
  11. #==============================LABELS=========================================
  12. lbl_title = Label(Top, text = "Python: Simple Login Application", font=('arial', 15))
  13. lbl_title.pack(fill=X)
  14. lbl_username = Label(Form, text = "Username:", font=('arial', 14), bd=15)
  15. lbl_username.grid(row=0, sticky="e")
  16. lbl_password = Label(Form, text = "Password:", font=('arial', 14), bd=15)
  17. lbl_password.grid(row=1, sticky="e")
  18. lbl_text = Label(Form)
  19. lbl_text.grid(row=2, columnspan=2)
  20.  
  21. #==============================ENTRY WIDGETS==================================
  22. username = Entry(Form, textvariable=USERNAME, font=(14))
  23. username.grid(row=0, column=1)
  24. password = Entry(Form, textvariable=PASSWORD, show="*", font=(14))
  25. password.grid(row=1, column=1)
  26.  
  27. #==============================BUTTON WIDGETS=================================
  28. btn_login = Button(Form, text="Login", width=45, command=Login)
  29. btn_login.grid(pady=25, row=3, columnspan=2)
  30. btn_login.bind('<Return>', Login)


إنشاء اتصال قاعدة البيانات

ثم بعد إعداد التصميم ، سننشئ الآن وظيفة قاعدة البيانات. للقيام بذلك ، ما عليك سوى نسخ الكود أدناه ولصقه داخل محرر نصوص IDLE


  1. #==============================METHODS========================================
  2. def Database():
  3. global conn, cursor
  4. conn = sqlite3.connect("pythontut.db")
  5. cursor = conn.cursor()
  6. cursor.execute("CREATE TABLE IF NOT EXISTS `member` (mem_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)")
  7. cursor.execute("SELECT * FROM `member` WHERE `username` = 'admin' AND `password` = 'admin'")
  8. if cursor.fetchone() is None:
  9. cursor.execute("INSERT INTO `member` (username, password) VALUES('admin', 'admin')")
  10. conn.commit()



انشاء الوظيفة الرئيسية

هذه هي الوظيفة الرئيسية حيث سيتم التحقق من الإدخال إذا كان هناك مستخدم موجود في قاعدة البيانات ، بعد تسجيل الدخول بشكل صحيح ، ستظهر نافذة جديدة. للقيام بذلك ، ما عليك سوى نسخ الكود أدناه ثم لصقه داخل محرر نصوص IDLE.

  1. def Login(event=None):
  2. Database()
  3. if USERNAME.get() == "" or PASSWORD.get() == "":
  4. lbl_text.config(text="Please complete the required field!", fg="red")
  5. else:
  6. cursor.execute("SELECT * FROM `member` WHERE `username` = ? AND `password` = ?", (USERNAME.get(), PASSWORD.get()))
  7. if cursor.fetchone() is not None:
  8. HomeWindow()
  9. USERNAME.set("")
  10. PASSWORD.set("")
  11. lbl_text.config(text="")
  12. else:
  13. lbl_text.config(text="Invalid username or password", fg="red")
  14. USERNAME.set("")
  15. PASSWORD.set("")
  16. cursor.close()
  17. conn.close()
  18.  
  19. def HomeWindow():
  20. global Home
  21. root.withdraw()
  22. Home = Toplevel()
  23. Home.title("Python: Simple Login Application")
  24. width = 600
  25. height = 500
  26. screen_width = root.winfo_screenwidth()
  27. screen_height = root.winfo_screenheight()
  28. x = (screen_width/2) - (width/2)
  29. y = (screen_height/2) - (height/2)
  30. root.resizable(0, 0)
  31. Home.geometry("%dx%d+%d+%d" % (width, height, x, y))
  32. lbl_home = Label(Home, text="Successfully Login!", font=('times new roman', 20)).pack()
  33. btn_back = Button(Home, text='Back', command=Back).pack(pady=20, fill=X)
  34.  
  35. def Back():
  36. Home.destroy()
  37. root.deiconify()


تهيئة التطبيق

بعد الانتهاء من الوظيفة ، احفظ التطبيق باسم "index.py". ستعمل هذه الوظيفة على تشغيل الكود والتحقق مما إذا كان الرئيسي قد تمت تهيئته بشكل صحيح. للقيام بذلك ، انسخ الكود أدناه والصقه داخل محرر نصوص IDLE.


  1. #==============================INITIALIATION==================================
  2. if __name__ == '__main__':
  3. root.mainloop()



username:admin
password:admin






تعليقات



حجم الخط
+
16
-
تباعد السطور
+
2
-