آموزش دسترسی به پایگاه داده MySQL در برنامه نویسی پایتون 3

3 سال پیش
امتیاز دهید post

 آموزش دسترسی به پایگاه داده MySQL در برنامه نویسی پایتون 3

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش دسترسی به پایگاه داده MySQL در برنامه نویسی پایتون 3 خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون

استاندارد پایتون برای رابط های پایگاه داده Python DB-API است. بیشتر رابط های پایگاه داده پایتون از این استاندارد پیروی می کنند.

شما می توانید پایگاه داده مناسب را برای برنامه خود انتخاب کنید. Python Database API از طیف وسیعی از سرورهای پایگاه داده مانند – پشتیبانی می کند

  • GadFly
  • mSQL
  • MySQL
  • PostgreSQL
  • Microsoft SQL Server 2000
  • Informix
  • Interbase
  • Oracle
  • Sybase
  • SQLite

در اینجا لیستی از رابط های پایگاه داده پایتون موجود است – رابط های پایگاه داده پایتون و API ها. برای هر پایگاه داده ای که باید به آن دسترسی داشته باشید، باید یک ماژول API DB جداگانه دانلود کنید. به عنوان مثال، اگر نیاز به دسترسی به پایگاه داده Oracle و همچنین پایگاه داده MySQL دارید، باید هر دو ماژول پایگاه داده Oracle و MySQL را دانلود کنید.

DB API حداقل استانداردی را برای کار با پایگاه های داده با استفاده از ساختارهای Python و سینتکس در هر جایی که امکان دارد ارائه می دهد. این API شامل موارد زیر است –

  • وارد کردن ماژول API
  • ایجاد ارتباط با پایگاه داده
  • صدور دستورات SQL و رویه های ذخیره شده.
  • بستن اتصال

پایتون از SQLite پشتیبانی داخلی دارد. در این بخش با استفاده از MySQL تمام مفاهیم را یاد می گیریم. ماژول MySQLdb، یک رابط محبوب با MySQL با پایتون 3 سازگار نیست. در عوض، ما از ماژول PyMySQL استفاده خواهیم کرد.

PyMySQL چیست؟

PyMySQL یک رابط برای اتصال به سرور پایگاه داده MySQL از پایتون است. این برنامه API پایگاه داده پایتون نسخه 2.0 را پیاده سازی می کند و شامل یک کتابخانه کلاینت MySQL خالص پایتون است. هدف PyMySQL این است که جایگزینی برای MySQLdb باشد.

چگونه PyMySQL را نصب کنم؟

قبل از ادامه، مطمئن شوید که PyMySQL روی دستگاه خود نصب کرده اید. فقط عبارت زیر را در اسکریپت پایتون خود تایپ کنید و آن را اجرا کنید –

 

اگر نتیجه زیر را ایجاد کرد، به این معنی است که ماژول MySQLdb نصب نشده است –

 

ImportError: هیچ ماژولی با نام pymysql وجود ندارد
آخرین نسخه پایدار در PyPI در دسترس است و می توان آن را با pip – نصب کرد

 

روش دیگر (مثلاً اگر پیپ در دسترس نباشد)، یک tarball را می توان از GitHub بارگیری کرد و با Setuptools به شرح زیر نصب کرد –

 

توجه – مطمئن شوید که برای نصب ماژول فوق از دسترسی روت برخوردار هستید.

اتصال به پایگاه داده

قبل از اتصال به پایگاه داده MySQL، از نکات زیر اطمینان حاصل کنید

  • شما یک پایگاه داده TESTDB ایجاد کرده اید.
  • شما یک جدول EMPLOYEE در TESTDB ایجاد کرده اید.
  • این جدول دارای فیلدهای FIRST_NAME، LAST_NAME، AGE، SEX و INCOME است.
  • شناسه کاربری “testuser” و رمز عبور “test123” برای دسترسی به TESTDB تنظیم شده است.
  • ماژول Python PyMySQL به درستی روی دستگاه شما نصب شده است.
  • شما آموزش MySQL را برای درک مبانی MySQL گذرانده اید.

مثال

در زیر نمونه ای از اتصال با پایگاه داده MySQL “TESTDB” – آمده است

 

هنگام اجرای این اسکریپت، نتیجه زیر را ایجاد می کند.

 

اگر ارتباطی با منبع داده برقرار شود، یک Connection Object برگردانده می شود و برای استفاده بیشتر در db ذخیره می شود، در غیر این صورت db روی None تنظیم می شود. بعد، شی db برای ایجاد یک شی مکان نما استفاده می شود، که به نوبه خود برای اجرای پرس و جوهای SQL استفاده می شود. در نهایت، قبل از بیرون آمدن، اطمینان حاصل می کند که اتصال پایگاه داده بسته شده و منابع آزاد شده اند.

ایجاد جدول پایگاه داده

هنگامی که اتصال پایگاه داده برقرار شد، ما آماده هستیم تا جداول یا رکوردها را با استفاده از روش اجرای مکان نما ایجاد شده در جداول پایگاه داده ایجاد کنیم.

مثال

اجازه دهید یک جدول پایگاه داده EMPLOYEE – ایجاد کنیم

 

عملیات INSERT

زمانی که می خواهید رکوردهای خود را در جدول پایگاه داده ایجاد کنید، عملیات INSERT مورد نیاز است.

مثال

مثال زیر دستور SQL INSERT را برای ایجاد یک رکورد در جدول EMPLOYEE اجرا می کند –

 

مثال بالا را می توان به صورت زیر برای ایجاد پرس و جوهای SQL به صورت پویا – نوشت

 

مثال

بخش کد زیر شکل دیگری از اجرا است که در آن می توانید پارامترها را مستقیماً ارسال کنید

 

عملیات READ

عملیات READ در هر پایگاه داده به معنای واکشی اطلاعات مفید از پایگاه داده است.

  • هنگامی که اتصال پایگاه داده برقرار شد، شما آماده هستید تا یک پرس و جو در این پایگاه داده ایجاد کنید. می توانید از متد ()fetchone برای واکشی یک رکورد واحد یا متد ()fetchall برای واکشی چندین مقدار از جدول پایگاه داده استفاده کنید.
  • ()fetchone – سطر بعدی مجموعه نتایج پرس و جو را واکشی می کند. مجموعه نتیجه، شی ای است که وقتی از یک شی مکان نما برای جستجو در جدول استفاده می شود، برگردانده می شود.
  • ()fetchall – تمام سطرها را در یک مجموعه نتیجه واکشی می کند. اگر برخی از ردیف‌ها قبلاً از مجموعه نتایج استخراج شده باشند، بقیه ردیف‌ها را از مجموعه نتایج بازیابی می‌کند.
  • rowcount – این یک ویژگی فقط خواندنی است و تعداد ردیف هایی را که تحت تأثیر متد execute() قرار گرفته اند را برمی گرداند.

مثال

روش زیر تمام سوابق را از جدول EMPLOYEE با حقوق بیش از 1000 جستجو می کند –

 

این نتیجه زیر را ایجاد می کند –

 

عملیات به روز رسانی

به روز رسانی عملیات بر روی هر پایگاه داده به معنای به روز رسانی یک یا چند رکورد است که از قبل در پایگاه داده موجود است.

روش زیر تمام رکوردهایی را که دارای جنسیت “M” هستند به روز می کند. در اینجا، ما سن تمام مردان را یک سال افزایش می دهیم.

مثال

 

 

عملیات DELETE

هنگامی که می خواهید برخی از رکوردها را از پایگاه داده خود حذف کنید، عملیات DELETE مورد نیاز است. در زیر روش حذف تمام سوابق از EMPLOYEE در جایی که سن بیش از 20 سال است وجود دارد.

 

مثال

 

انجام تراکنش ها

تراکنش ها مکانیزمی هستند که ثبات داده ها را تضمین می کند. تراکنش ها دارای چهار ویژگی زیر هستند –

  • اتمی – یا یک تراکنش کامل می شود یا اصلاً هیچ اتفاقی نمی افتد.
  • سازگاری – یک تراکنش باید در یک حالت ثابت شروع شود و سیستم را در یک حالت ثابت باقی بگذارد.
  • جداسازی – نتایج میانی یک تراکنش خارج از تراکنش جاری قابل مشاهده نیست.
  • دوام – هنگامی که یک تراکنش انجام شد، اثرات آن حتی پس از خرابی سیستم پایدار است.

Python DB API 2.0 دو روش برای commit یا rollback یک تراکنش ارائه می دهد.

مثال

شما قبلاً می دانید که چگونه تراکنش ها را پیاده سازی کنید. در اینجا یک مثال مشابه است –

 

عملیات COMMIT

Commit عملیاتی است که برای نهایی کردن تغییرات به پایگاه داده سیگنال سبز رنگ می دهد و پس از این عملیات هیچ تغییری قابل برگشت نیست.

در اینجا یک مثال ساده برای فراخوانی متد commit آورده شده است.

 

عملیات ROLLBACK

اگر از یک یا چند مورد از تغییرات راضی نیستید و می خواهید آن تغییرات را به طور کامل برگردانید، از متد rollback() استفاده کنید.

در اینجا یک مثال ساده برای فراخوانی متد rollback() آورده شده است.

 

قطع ارتباط پایگاه داده

برای قطع اتصال پایگاه داده، از متد ()close استفاده کنید.

 

اگر اتصال به پایگاه داده توسط کاربر با متد ()close بسته شود، هر تراکنش معوقه توسط DB بازگردانده می شود. با این حال، به جای وابستگی به هر یک از جزئیات پیاده سازی سطح پایین تر DB، برنامه شما بهتر است به طور صریح commit یا rollback را فراخوانی کند.

رسیدگی به خطاها

منابع بسیاری از خطاها وجود دارد. چند مثال عبارتند از یک خطای نحوی در یک دستور SQL اجرا شده، یک شکست اتصال، یا فراخوانی متد واکشی برای یک دسته دستور از قبل لغو شده یا تمام شده.

DB API تعدادی خطا را تعریف می کند که باید در هر ماژول پایگاه داده وجود داشته باشد. جدول زیر این استثناها را فهرست می کند.

Sr.No. Exception & Description
1 Warning

برای مسائل غیر خطرناک استفاده می شود. باید زیر کلاس StandardError باشد.

2 Error

کلاس پایه برای خطاها باید زیر کلاس StandardError باشد.

3 InterfaceError

برای خطاهای ماژول پایگاه داده استفاده می شود، نه خود پایگاه داده. باید زیر کلاس Error.

4 DatabaseError

برای خطاهای موجود در پایگاه داده استفاده می شود. باید زیر کلاس Error.

5 DataError

زیر کلاس DatabaseError که به خطاهای موجود در داده ها اشاره دارد.

6 OperationalError

زیر کلاس DatabaseError که به خطاهایی مانند قطع اتصال به پایگاه داده اشاره دارد. این خطاها به طور کلی خارج از کنترل اسکریپت پایتون هستند.

7 IntegrityError

زیر کلاس DatabaseError برای موقعیت‌هایی که به یکپارچگی رابطه آسیب می‌رساند، مانند محدودیت‌های منحصربه‌فرد یا کلیدهای خارجی.

8 InternalError

زیر کلاس DatabaseError که به خطاهای داخلی ماژول پایگاه داده اشاره می کند، مانند اینکه مکان نما دیگر فعال نیست.

9 ProgrammingError

زیر کلاس DatabaseError که به خطاهایی مانند نام بد جدول و موارد دیگری اشاره دارد که می‌توان با خیال راحت شما را مقصر دانست.

10 NotSupportedError

زیر کلاس DatabaseError که به تلاش برای فراخوانی عملکرد پشتیبانی نشده اشاره دارد.

 

اسکریپت های پایتون شما باید این خطاها را مدیریت کنند، اما قبل از استفاده از هر یک از استثناهای بالا، مطمئن شوید که MySQLdb شما از آن استثنا پشتیبانی می کند. با مطالعه مشخصات DB API 2.0 می توانید اطلاعات بیشتری در مورد آنها بدست آورید.

 

منبع.

 

 

لیست جلسات قبل آموزش برنامه نوبسی پایتون 3

  1. آموزش برنامه نویسی پایتون 3
  2. آموزش موارد جدید در برنامه نویسی پایتون 3
  3. آموزش مرور کلی برنامه نویسی پایتون 3
  4. آموزش راه اندازی محیط برنامه نویسی پایتون 3
  5. آموزش نحو در برنامه نویسی پایتون 3
  6. آموزش انواع متغیرها در برنامه نویسی پایتون 3
  7.  آموزش عملگرهای پایه در برنامه نویسی پایتون 3
  8.  آموزش تصمیم گیری در برنامه نویسی پایتون 3
  9.  آموزش حلقه ها در برنامه نویسی پایتون 3
  10. آموزش اعداد در برنامه نویسی پایتون 3
  11. آموزش رشته ها در برنامه نویسی پایتون 3
  12.  آموزش لیست ها در برنامه نویسی پایتون 3
  13.  آموزش تاپل ها در برنامه نویسی پایتون 3
  14. آموزش دیکشنری در برنامه نویسی پایتون 3
  15.  آموزش تاریخ و زمان در برنامه نویسی پایتون 3
  16.  آموزش توابع در برنامه نویسی پایتون 3
  17. آموزش ماژول ها در برنامه نویسی پایتون 3
  18. آموزش فایل های ورودی/خروجی در برنامه نویسی پایتون 3
  19. آموزش مدیریت استثنا در برنامه نویسی پایتون 3
  20. آموزش شی گرایی در برنامه نویسی پایتون 3
  21.  آموزش عبارات منظم در برنامه نویسی پایتون 3
  22. آموزش CGI در برنامه نویسی پایتون 3
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه