در مطلب پیشین در مورد مفهوم ORM تا اندازه ای صحبت کردیم و در ادامه آموزش ها در این مطلب می خواهیم نخستین گام در کار با SqlAchemy را آموزش دهیم که شامل نصب درایور پایگاه داده MySQL و ایجاد اتصال به پایگاه داده MySQL استپایتون دارای تعدادی درایور برای پایگاه داده MySQL است که در زیر فهرست شده اند ولی از میان آنها درایور به نام MySQLdb پیش فرض مورد استفاده SqlAchemy است. در ادامه یاد داده ایم که چگونه رشته اتصال (Connection String) را آماده کنید و خواهید دید که در صورت استفاده از پایگاه داده MySQL به همراه این درایور، دیگر نیازی نیست نام آنرا در رشته اتصال تعیین کنید.

۱ – MySQLdb

۲ -mysql-connector-python

۳ – pymysql

در این مطلب ها ما از MySQLdb استفاده نمی کنیم بلکه از درایور نوشته شده خود MySQL یعنی python-mysql-connector استفاده می کنیم. mysql-connector-python درایوری است که توسط خود سایت MySQL توسعه و ارائه می شود. در دستورهای زیر ابتدا این درایور را نصب کرده و سپس اگر sqlAlchemy نصب نبوده باشد، آنرا را نیز نصب می کنیم. توجه کنید که باید SqlAchemy به صورت پیش فرض با خود آناکوندا نصب شده باشد و دیگر نیازی به نصب آن ندارید ولی اگر آن نیز نصب نیست، دستور دوم را اجرا کنید.

دستور اول درایور python-mysql-connector و دستور دوم خود SqlAlchemy را نصب می کند. اگر محیط آناکوندا را نصب نکرده اید، پس می توانید یک محیط مجازی ایجاد و سپس توسط دستورهای زیر و از طریق pip بسته های مورد نیاز را نصب کنید. همچنین لازم است تا محیط برنامه نویسی Jupyter Notebook را نیز نصب کنید زیرا می خواهیم در این دوره کدها را درون آن نوشته و اجرا کنیم.

در دستورهای بالا ابتدا یک دایرکتوری درون دایرکتوری خانگی ایجاد کردیم و سپس توسط دستور virtualenv یک محیط مجازی بر مبنای پایتون نسخه ۳ ایجاد کردیم. بنابراین باید نسخه ای از پایتون ۳ مانند 3.6 یا 3.7 روی سیستم شما نصب باشد. در نهایت باید توسط دستورهای زیر ابتدا محیط مجازی را فعال و سپس سه بسته مورد نیاز را نصب کنیم.

ایجاد رشته اتصال و ارتباط به پایگاه داده

در این لینک چگونگی رشته اتصال در SqlAchemy توضیح داده شده است و می توانید رشته اتصال را برای دیگر پایگاه داده ها را بخوانید ولی در ادامه یاد خواهیم داد که چگونه رشته اتصال را برای MySQL ایجاد کنید. در کدهای زیر ابتدا متد ()create_engine از ماژول SqlAlchemy را به فایل ضمیمه کرده ایم.

در دستورهای ابتدا متد ()create_engine از ماژول sqlalchemy به فایل برنامه ضمیمه شده است و سپس در خط بعدی می بینید که ابتدا رشته اتصال به متد ()create_engine فرستاده شده است و در نهایت از طریق متغیر engine به رشته اتصال اشاره می شود. می دانید که برای اتصال به سرور MySQL نیاز به نام و گذرواژه کاربر، نام سرور  آن دارید ولی به صورت اختیاری می توانید شماره پورت (درگاه) و نام پایگاه داده را نیز مشخص کنید.

الگوی کلی رشته اتصال به صورت زیر است. Dialect نام پایگاه داده ای (مانند MySQQL یا PostgreSQL) است که می خواهید به آن وصل شوید و driver نام درایور یا کتابخانه ای (مانند mysql-connector-python) است که می خواهید از طریق آن به سرور پایگاه داده وصل شوید. بنابراین چون ما می خواهیم به MySQL و بوسیله mysql-connector-python وصل شویم، باید آنرا به صورت mysql+mysqlconnector در نظر بگیریم (توجه کنید نام درایور برای mysql-connector-python به صورت mysqlconnector نوشته می شود).

توضیح دادیم که اگر شما از کتابخانه MySQLdb استفاده کنید، دیگر نیازی نیست نام آنرا بیاورید، به عبارت دیگر نوشتن mysql در ابتدای رشته اتصال مانند زیر کافی است. اولین و دومین رشته اتصال زیر برای زمانی که از MySQLdb استفاده می کنیم و سومین برای زمانی که از mysql+mysqlconnector کاربرد دارند.

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

آماده سازی MySQL

برای این دوره از یک پایگاه داده پیش فرض استفاده شده است که می توانید آنرا از اینجا دانلود و سپس به درون پایگاه داده خود ضمیمه کنید. بنابراین پیش از هر چیز باید یک نسخه از MySQL مانند MySQL 5.7 را بر روی سیستم خود نصب داشته باشید. پس از آن باید یک کاربر را برای ارتباط به پایگاه داده و اجرای کوئری ها روی جدول های پایگاه داده ایجاد کینم. توجه کنید می توانیم از کاربر root نیز استفاده کنیم ولی بهتر است برای برنامه ها و وب سایت ها، کاربری غیر از root را داشته باشیم، که تنها روی یک سری از جدول های مورد نظر ما دسترسی داشته باشد.

در کدهای بالا ابتدا یک پایگاه داده به نام employees ایجاد می کنیم، و سپس یک کاربر به نام  myusr را ایجاد کرده ایم. تنها کافیست که برای کاربر یک گذروازه تعیین کنید. سپس از اینجا فایل zip مربوط به پایگاه داده نمونه را دانلود و درون یک فولدر از حالت فشرده خارج کنید. در نهایت باید ابتدا از طریق خط فرمان و دستور cd به جایی بروید که فولدر پایگاه داده وجود دارد. اگر فرض کنید شما فایل zip را در همان فولدر Downloads از حالت فشرده خارج کرده باشید، پس باید دستورهای زیر را اجرا کنید.

اگر نمی خواهید گام های بالا را انجام دهید می توانید برای محیط برنامه نویسی و توسعه خود از همان کاربر root استفاده کنید، همان کاری که در ادامه مطلب من انجام داده ام. همچنین در مطلب بعدی یک بار دیگر و به روشی دیگر چگونگی آماده سازی رشته اتصال و ارتباط با پایگاه داده MySQL را از طریق درایور  و کتابخانه SQLAlchemy آموزش mysql-connector-python می دهیم.