فرآیند توسعه خود را با قدرت این دو چارچوب مکمل ساده کنید.
در دنیای امروز، اپلیکیشن های موبایل یک ضرورت برای هر کسب و کاری است. Flutter و Django دو فریمورک محبوب هستند که برای توسعه اپلیکیشن استفاده می شوند. Flutter یک جعبه ابزار UI منبع باز برای ساخت برنامه های زیبا و بومی کامپایل شده برای موبایل، وب و دسکتاپ از یک پایگاه کد واحد است.
جنگو یک چارچوب وب سطح بالا پایتون است که توسعه سریع وب سایت ها و برنامه های کاربردی تحت وب ایمن و قابل نگهداری را امکان پذیر می کند.
بررسی اهمیت جنگو و فلاتر در توسعه اپلیکیشن
جنگو بر اساس الگوی معماری Model-View-Controller (MVC) است و از اصل خودت تکرار نکن (DRY) پیروی می کند که قابلیت استفاده مجدد کد را تضمین می کند و افزونگی را کاهش می دهد.
می توانید از Flutter 3.7 که در فوریه 2023 منتشر شد، برای ایجاد برنامه های زیبا و بومی کامپایل شده برای موبایل، وب و دسکتاپ از یک پایگاه کد استفاده کنید. فلاتر از زبان برنامه نویسی دارت استفاده می کند که سریع، مدرن و برای توسعه موبایل بهینه شده است.
ترکیب ویژگیهای قدرتمند جنگو و فلاتر در توسعه اپلیکیشن میتواند منجر به فرآیندهای توسعه کارآمد، کاهش افزونگی و تجربه کاربری بهینه به دلیل نقاط قوت مکمل فریمورکها شود.
محدودیت های ادغام جنگو با فلاتر
محدودیتهای ادغام جنگو و فلاتر ممکن است شامل مسائل سازگاری، افزایش پیچیدگی در توسعه، و یک منحنی یادگیری بالقوه برای توسعهدهندگان ناآشنا با هر دو چارچوب باشد.
اگرچه جنگو و فلاتر جامعه بزرگ و فعالی دارند، اما ادغام بین آنها هنوز در مراحل اولیه است، بنابراین توسعه دهندگان ممکن است در یافتن راه حل هایی برای مشکلات خاص با چالش هایی روبرو شوند.
چگونه جنگو را با فلاتر ادغام کنیم
بخش اول شما را به سمت راه اندازی پروژه جنگو و بخش دوم در تنظیم فلاتر راهنمایی می کند.
1. پروژه جنگو خود را راه اندازی کنید
شما می توانید یک REST API با استفاده از چارچوب Django REST بسازید. با ایجاد یک محیط مجازی و نصب جنگو شروع کنید:
pip install django
سپس چارچوب Django REST را نصب کنید، یک جعبه ابزار قدرتمند و انعطاف پذیر برای ساخت API:
pip install django-rest-framework
برنامه pip باید خروجی تولید کند که به شما بگوید نصب با موفقیت انجام شده است:
با ایجاد یک پروژه جدید با استفاده از رابط خط فرمان جنگو (CLI) کار را به پایان برسانید:
django-admin startproject myproject
2. یک برنامه جنگو ایجاد کنید
با ایجاد یک برنامه جدید در پروژه خود، با استفاده از Django CLI شروع کنید:
django-admin startapp api
سپس، مدلهای جنگو را در فایل models.py خود تعریف کنید تا دادههای موجود در برنامه شما را نشان دهد. سپس مدل های خود را با دستور زیر به پایگاه داده مهاجرت کنید:
python manage.py makemigrations
python manage.py migrate
با ایجاد نماهای جنگو در views.py برای رسیدگی به درخواست ها و پاسخ های HTTP ادامه دهید. اطمینان حاصل کنید که موارد زیر را در دستورات واردات خود اضافه کنید:
from rest_framework.decorators import api_view, permission_classes
این در صورتی است که از نماهای تابع و نه از نمای کلاس استفاده می کنید. برای مشاهده کلاس:
from rest_framework.views import APIView
برای تبدیل انواع داده های پیچیده به JSON یا XML، می توانید سریال سازها را در جنگو تعریف کنید. آنها داده ها را در قالبی سریال می کنند که به راحتی می توانید بین سیستم های مختلف انتقال دهید. همچنین، میتوانید از متد JsonResponse در عبارت بازگشت برای ایجاد مستقیم پاسخ JSON استفاده کنید.
from django.http import JsonResponse
سپس از آن در نمای زیر استفاده کنید.
@api_view(['GET'])
@permission_classes((permissions.AllowAny,))
def getRoutes(request):
routes = [{
'Endpoint': '/homeapi/',
'method': 'GET',
'body': {'body': ""},
'description': 'Returns a dict of data'
}]
view = APIView()
view.queryset = routes
return JsonResponse(routes, safe=False, status=200)
الگوهای url خود را در urls.py تعریف کنید:
from django.urls import path
from . import views
urlpatterns = [
path('homeapigetroutes/', views.getRoutes),
path('homeapi/',views.home_page),
path('homeapi/login/', views.login_page),
path('homeapi/csrf/', views.getcsrftoken),
path('homeapi/submitform/', views.submit_form),
]
اینها آدرسهایی هستند که به عنوان نقطه پایانی در برنامه Flutter استفاده میکنید. اگر برنامه جنگو خود را در PythonAnywhere میزبانی می کنید، فقط برنامه وب خود را مجدداً بارگیری کنید تا API ها را فعال کنید.
3. یک پروژه فلاتر ایجاد کنید
Flutter CLI کاربر پسند است و طیف گسترده ای از دستورات را برای مدیریت کارآمد پروژه ارائه می دهد.
اگر فلاتر را از قبل نصب نکرده اید، آن را نصب کنید. برای ایجاد یک پروژه جدید، این دستور ترمینال را اجرا کنید:
flutter create my_project
وابستگیهای بسته مدیریت کوکی dio و dio را به فایل pubspec.yaml خود اضافه کنید:
dio: ^5.0.0dio_cookie_manager: ^2.0.0
Dio بسته ای است که یک کلاینت HTTP برای ایجاد درخواست های API فراهم می کند. dio_cookie_manager یک بسته اضافی است که با dio کار می کند تا کوکی ها را برای آن درخواست ها مدیریت کند.
یک فایل api.dart ایجاد کنید تا متغیرها را به نقاط پایانی استراحت جنگو اختصاص دهید.
const loginUrl = 'https://test.pythonanywhere.com/api/homeapi/login/';
const csrfurl = 'https://test.pythonanywhere.com/api/homeapi/csrf/';
const dataUrl = 'https://test.pythonanywhere.com/api/homeapi/';
const noteUrl = 'https://test.pythonanywhere.com/api/homeapi/submitform/';
سپس میتوانید با انجام درخواستهای POST، GET، PUT یا DELETE از نقاط پایانی خود بسته به نیاز خود استفاده کنید. حتما فایل api.dart خود را وارد کنید.
به عنوان مثال، اگر می خواهید داده ها را از نقطه پایانی به نام dataUrl دریافت کنید:
var response = await dio.get(dataUrl);
برای نمایش داده ها در برنامه Flutter خود، می توانید از ویجت ها استفاده کنید و آنها را با Future بپیچید که داده ها را از یک نقطه پایانی بازیابی می کند. ویجت listtile یکی از گزینه هایی است که می توانید برای نمایش داده ها در نظر بگیرید. با اجرای دستور زیر از دایرکتوری که پروژه شما در آن قرار دارد، برنامه flutter خود را در حالت اشکال زدایی اجرا کنید.
flutter run
Flutter به شما اطلاع می دهد که در حالت اشکال زدایی شروع شده است:
سپس می توانید درخواست های ارسال شده به API را در گزارش های سرور جنگو خود نظارت کنید.
آینده جنگو و ادغام فلاتر در توسعه برنامه
ادغام Django و Flutter مزایای زیادی را برای توسعه برنامه ارائه می دهد، از جمله توسعه سریعتر، قابلیت استفاده مجدد کد، عملکرد بهتر و تجربه کاربری پیشرفته.
همانطور که ادغام بین Django و Flutter همچنان در حال تکامل است، میتوان انتظار داشت که ویژگیهای پیشرفتهتر و پشتیبانی بهتر جامعه را ببینیم، که ساخت برنامههای تلفن همراه با کیفیت بالا را برای توسعهدهندگان آسانتر میکند.