توسعه دهنده و علاقه مند به Python و Flutter
شروع به کار با Django و MySQL
این مقاله یک آموزش مقدماتی برای دوستان دولوپر بک اند که مایل هستندتا با Django، Mysql و DjangoRestFramework کار کنند نوشته شده. در اینجا من قصد دارم تا یک سیستم ساده برای ارتباط با پایگاه داده درست کنم که با API قادر به ارتباط با محیط بیرون خود است.
نصب و راه اندازی جنگو و محیط مجازی پایتون
شما می خواهید یک محیط توسعه ایجاد کنید که بتوانید آن را کنترل کنید. محیط های مجازی به شما کمک می کنند تمام بسته های مورد نیاز یک کار خاص توسعه را بدون نیاز به تأثیرگذاری بر سیستم پایه خود نصب کنید. همچنین به شما در مدیریت وابستگی ها هنگام استقرار برنامه کمک می کند.
Django Project دایرکتوری اصلی پروژه است و Application ها یا برنامه ها درون پوشه پروژه قرار می گیرند. در یک پروژه می توانید برنامه های بسیاری داشته باشید. در این مقاله ، ما این پروژه را "backend" و برنامه را "employee_app" می نامیم.
اتصال Django به Mysql
معمولاً ، جنگو با استفاده از مدل ها پایگاه داده را مدیریت می کند. مدلهای جنگو نقشههایی از پایگاه داده ها هستند که به شما کمک می کند حتی با دانش کمی از SQL با دیتابیس ارتباط برقرار کنید. حتی اگر از قبل هم پایگاه داده شما وجود داشته است جنگو به صورت اتوماتیک می تواند داده های قدیمی را به مدل تبدیل کند. من در این پروژه از این فایل SQL برای ساخت پایگاه داده کمک گرفتم.
پایگاه داده پیش فرض Django را از sqlite3 به MySQL تغییر دهید
اکیدا از وارد کردن رمز عبور در فایل setting.py خودداری کنید. می توانید یک متغیر محیط ایجاد کرده و از فایل setting.py به آن دسترسی پیدا کنید
ویرایش فایل setting.py
ایجاد مدلهای پایگاه داده با استفاده از InspectDb
اگر دیتابیس از قبل دارید که داده ایی در آن وجود دارد ، جنگو به شما کمک می کند تا پایگاه داده را بررسی کند و به طور خودکار مدل های مربوطه را برای شما تولید نماید.
قسمتی از مدلهای تولید شده در models.py:
کارهای تکمیلی با استفاده از Makemigrations و Migrate:
در ادامه employee_app و restframework را در فایل setting.py در قسمت installed apps اضافه کنید:
مدیریت Rest API در جنگو
جنگو داده های پایگاه داده را در قالب انواع داده های پیچیده مانند queryset ها تولید می کند. لازم است که این ساختارها به اشیاء پایتون تبدیل شوند تا بتوانند به عنوان اشیاء JSON یا XML در frontend قابل مصرف باشند.serializaer ها برای این منظور ایجاد شده اند.
Serializer
فایلی به اسم "serializers.py" در employee_app ایجاد کنید. برای هر مدل در پرونده model.py یک Serializer ایجاد کنید. djangorestframework انواع مختلفی از Serializer ها را دارد. در اینجا ما از کلاس ModelSerializer ارث می بریم و تمامی فیلدهای هر جدول را return می کنیم:
قسمت Views
View ها به کاربر کمک می کنند تا با استفاده از Viewset با پایگاه داده در تعامل باشند.ایده این است که query ایجاد کنید که داده ها را با استفاده از مدل ها از پایگاه داده بدست آورده ، سپس داده ها را از طریق Serializer قبل از اینکه به دید کاربر رسانه شود منتقل شوند.
در هر view ما serializer که قرار است استفاده کنیم را تعریف کرده و به ساخت querysetکه مشخص کننده نوع و مقدار محتوای درخواستی ماست، می پردازیم.
views.py را در employee_app ویرایش کنید. من نمایش داده های خود را به چند سطر محدود می کنم زیرا بانک اطلاعاتی حاوی داده های زیادی است. شما می توانید نماهای پیشرفته تری ایجاد کنید..
URL ها
ما از روترهای rest_framework ایجاد لینک های پویا در پروژه استفاده کرده ایم. تمام کاری که باید انجام شود رجیستر کردن view هاست.
فایل urls.py را در پوشه پروژه ویرایش کنید:
الان وقت آن رسیده که مدل ها رو در قسمت Admin Site رجیست کنیم. فایل admin.py در پوشه پروژه رو باز کرده و محتوی رو مثل زیر تغییر می دهیم:
تست برنامه
بعد از اعمال تغییرات بالا سرور رو در پوشه بک اند راه اندازی می کنیم:
مرورگر رو باز کنید برید به http://127.0.0.1:8080/api. چیزی که باید ببینید:
بر روی هر کدام از لینک ها که کلیک کنید داده های پایگاه داده بصورت JSON نمایش داده می شود.
لیست حقوق ها('http://127.0.0.1:8000/api/saleries')
الان دیگر می توان با API ها به کمک جنگو و Mysql کار کرد.
مطلبی دیگر از این انتشارات
معماری MVC که میگن یعنی چی؟
مطلبی دیگر از این انتشارات
چه میزان از REST API می دونم؟
مطلبی دیگر از این انتشارات
روششناسی احراز هویت در سطوح مختلف