أنشئ هذا التطبيق للتعرف على كيفية إنشاء جدول قاعدة البيانات وتعبئته بالبيانات.

تتمتع Python بدعم قاعدة بيانات ممتاز مدمج في مكتبتها القياسية، بحيث يمكنك إنشاء قاعدة بيانات والتفاعل معها دون الاعتماد على أطر عمل خارجية مثل Django ORM.

SQLite خفيف الوزن وسهل التكامل مع Python. اكتشف المبادئ الأساسية لبرمجة قواعد البيانات في Python باستخدام تطبيق بسيط لتسجيل المستخدم.

كيفية إنشاء قاعدة بيانات في بايثون

يمكنك العثور على الكود المستخدم لهذا البرنامج التعليمي في هذا مستودع جيثب

لإنشاء قاعدة بيانات والتفاعل معها في بايثون، تحتاج إلى شيئين رئيسيين: أ اتصال و أ المؤشر.

يساعدك الاتصال على الاتصال بقاعدة بيانات موجودة أو إنشاء قاعدة جديدة. إليك كيفية إنشاء اتصال قاعدة بيانات في Python باستخدام SQLite:

import sqlite3

# Connect to a (new) database
conn = sqlite3.connect('path/to/database.db')

# Close the connection
conn.close()

ال يتصل() تأخذ الطريقة المسار إلى قاعدة بيانات موجودة. إذا لم تكن هناك قاعدة بيانات في المسار المحدد، فسيتم إنشاء واحدة. يجب عليك إغلاق اتصال قاعدة البيانات الخاصة بك عند الانتهاء من التفاعل مع قاعدة البيانات.

instagram viewer

يساعدك المؤشر على التفاعل مع قاعدة البيانات المتصلة. ستستخدم المؤشر لتنفيذ استعلامات SQL داخل برنامج Python الخاص بك. إليك كيفية إنشاء المؤشر:

cursor = conn.cursor()

# Close the cursor
cursor.close()

يمكنك إنشاء مؤشر عن طريق الاتصال بـ المؤشر () الطريقة على كائن اتصال مفتوح.

كيفية تنفيذ معاملة قاعدة البيانات في بايثون

باستخدام المؤشر، يمكنك تشغيل عبارات SQL أو الاستعلامات أو البرامج النصية لقراءة البيانات أو كتابتها أو تغيير بنية قاعدة البيانات.

هناك ثلاث طرق رئيسية يمكنك استخدامها لتنفيذ معاملة قاعدة البيانات.

  1. تنفيذ المؤشر. ستقوم هذه الطريقة بتشغيل عبارة SQL واحدة. إليك كيفية استخدامه:
    cursor.execute(
    CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    age INTEGER
    )
    )
    هذا الرمز يدعو ينفذ الطريقة على المؤشر، وتمرير سلسلة تحتوي على عبارة SQL.
  2. Cursor.executemany. تتيح لك هذه الطريقة تشغيل نفس عبارة SQL أكثر من مرة، مع معلمات مختلفة في كل مرة. يستغرق الأمر وسيطتين: عبارة SQL وقابلة للتكرار. الاستخدام الجيد لذلك هو إدراج عدة كائنات في قاعدة البيانات مرة واحدة:
    data = [
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 22)
    ]

    cursor.executemany(INSERT INTO users (name, age) VALUES (?, ?), data)

    يستخدم الكود أعلاه com.executemany طريقة لإدراج القيم في قاعدة البيانات عدة مرات.

    لاحظ ال ? العناصر النائبة في عبارة SQL. سيستبدل التابع Executemany هذه القيم بالقيم المقابلة لكل كائن.

  3. Cursor.executescript. كما يوحي الاسم، ستقوم هذه الطريقة بتنفيذ برنامج نصي SQL لك. يمكنك كتابة عبارات SQL الخاصة بك في ملف مختلف وتشغيلها باستخدام ملحق com.executescript طريقة:
    with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

كيفية إنشاء تطبيق تسجيل باستخدام Python وSQLite3

يتضمن المنطق الكامن وراء تطبيق التسجيل الحصول على معلومات المستخدم باستخدام Python وتخزينها في قاعدة بيانات. ستوضح لك هذه الخطوات كيفية إنشاء نظام تسجيل بسيط باستخدام Python وSQLite3.

الخطوة 1: الاتصال بقاعدة بيانات موجودة أو إنشاء قاعدة جديدة

ابدأ بإنشاء قاعدة بيانات لتطبيقك أو الاتصال بقاعدة بيانات موجودة:

import sqlite3

conn = sqlite3.connect('database.db')

cursor = conn.cursor()

# your app's code goes here

cursor.close()

conn.close()

يقوم الكود أعلاه بإنشاء كائن اتصال ومؤشر للتفاعل مع قاعدة البيانات المتصلة.

الخطوة 2: إنشاء جدول للمستخدمين

أنت بحاجة إلى جدول لتخزين البيانات التي سيقدمها المستخدمون عند التسجيل. إليك كيفية إنشاء واحدة باستخدام المؤشر:

cursor.execute(
CREATE TABLE IF NOT EXISTS users (
first_name TEXT,
last_name TEXT,
email TEXT UNIQUE,
password TEXT
)
)

conn.commit()

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

الدعوة الى conn.commit من المهم تنفيذ الاستعلام في قاعدة البيانات. وبدون ذلك، لن تكون هناك تغييرات في قاعدة البيانات.

إذا كنت تستخدم طريقة تنفيذ البرنامج النصي، فيمكنك إضافة الكلمة الأساسية COMMIT في نهاية ملف SQL الخاص بك، لذلك لا يتعين عليك الاتصال بـ conn.commit.

الخطوة 3: جمع بيانات المستخدم

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

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

الخطوة 4: التحقق من صحة كلمة المرور

تعديل Register_user وظيفة للتأكد من أن المستخدم يدخل نفس كلمة المرور مرتين. إذا لم يفعلوا ذلك، فيجب عليك مطالبتهم بإعادة إدخال كلمة المرور. يمكنك تحقيق ذلك باستخدام حلقة مثل هذا:

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")

whileTrue:
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
print("You have successfully registered!")
break
else:
print("Your passwords must match")

مع هذا التغيير، لا يمكن للمستخدم التسجيل إلا إذا تطابقت كلمات المرور الخاصة به.

الخطوة 5: التحقق من تفرد البريد الإلكتروني

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

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")

whileTrue:
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
try:
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")
else:
print("Your passwords must match.")

يستخدم هذا الرمز كتلة المحاولة باستثناء التعامل مع الخطأ الذي سيحدث من رسائل البريد الإلكتروني المكررة. إذا أصدرت قاعدة البيانات خطأ IntegrityError، فستستمر الحلقة أثناء مطالبة المستخدم بإدخال عنوان بريد إلكتروني مختلف.

بالنسبة لهذا التطبيق النموذجي، فمن الآمن افتراض أن خطأ IntegrityError لن يحدث إلا نتيجة لعنوان بريد إلكتروني مكرر. في التطبيق الحقيقي، من المحتمل أن تستخدم معالجة أكثر تقدمًا للأخطاء لمعالجة المشكلات الأخرى التي قد تحدث.

الخطوة 6: أدخل بيانات المستخدم في قاعدة البيانات

الآن بعد أن قمت بجمع بيانات المستخدم والتحقق منها، فقد حان الوقت لإضافتها إلى قاعدة البيانات. يمكنك استخدام استعلام SQL لنفعل ذلك. قم بتعديل كتلة المحاولة باستثناء مثل هذا:

try:
cursor.execute(
INSERT INTO users (first_name, last_name, email, password)
VALUES (?,?,?, ?)
, (first_name, last_name, email, password2))

conn.commit()
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")

في كتلة المحاولة المعدلة، يقوم المؤشر بتنفيذ عملية إدراج SQL. وأخيرا، فإن conn.commit الأسلوب ينفذ عملية SQL إلى قاعدة البيانات.

إذا اتبعت جميع الخطوات المذكورة أعلاه، فمن المفترض أن يكون لديك تطبيق يقوم بتسجيل المستخدمين وحفظهم في قاعدة البيانات. يمكنك استخدام تطبيق مثل متصفح قاعدة البيانات لـ SQLite لعرض محتويات قاعدة البيانات الخاصة بك:

استخدام قواعد البيانات بدلاً من أنواع المجموعات

بالنسبة لقواعد البيانات البسيطة، قد تجد أنه من الأسهل إنشاء التعليمات البرمجية الخاصة بك. ومع ذلك، مع نمو التطبيق الخاص بك وتصبح قاعدة البيانات الخاصة بك أكثر تعقيدًا، فكر في استخدام أداة مثل Django ORM لتبسيط المهمة.

لمواصلة ممارسة مهاراتك في قاعدة البيانات ذات المستوى المنخفض، حاول تنفيذ نظام تسجيل دخول لاستكمال برنامج التسجيل.