Full Stack Developer and Mobile Developer
ساخت Snapp food Clone 🍔 _ بخش اول
با سلام
در این پست از تجربه شخصی خودم از ساخت یک نسخه clone از اسنپ فود توضیح می دم.
![Snapp food clone](https://files.virgool.io/upload/users/304416/posts/vkvbkuuy6xy2/nvw4czxqvq0o.jpg)
برای ساخت این clone من از دو تکنولوژی زیر استفاده می کنم برای back end از Django rest framework و برای front end از React.js استفاده می کنم.
![آیکون اسنپ فود](https://files.virgool.io/upload/users/304416/posts/vkvbkuuy6xy2/apk22dzl60tk.png)
در ابتدا باید سراغ back end برویم ، پیشنهاد من برای ساخت سریع back end برای rest api فریم ورک
Django rest framework
است این فریم ورک بسیار سبک و راحت هست و می توانید خیلی راحت و سریع یک api بسازید.
در ادامه به ساخت این clone به صورت گام به گام می پردازیم.
گام اول: ساخت back end
در ابتدا با دستور زیر یک پروژه django rest framework می سازیم.
pip install djangorestframework
سپس دستور زیر را در settings.py اضافه کنید
INSTALLED_APPS = [
...
'rest_framework',
]
سپس در فایل urls.py کد زیر را اضافه می کنیم
urlpatterns = [
...
path('api-auth/', include('rest_framework.urls'))
]
در مرحله بعد ساختار فایل ها و پوشه ها باید به صورت زیر باشد
![Back end structures](https://files.virgool.io/upload/users/304416/posts/vkvbkuuy6xy2/copylvw1xuzj.jpg)
در تصویر بالا ساختار فایل های back end را مشاهده می کنید
در مرحله بعد یک app بسازید با نام snappApi
برای ساخت app می توانید از دستور زیر استفاده کنید
python manage.py startapp snappApi
استفاده کنید
گام دوم : ساخت مدل models
در مرحله بعد به بررسی ساخت مدل های برنامه می پردازیم
داخل فایل models.py مدل های زیر را اضافه کنید
from django.db import models
# Create your models here.
class City(models.Model):
title = models.CharField(max_length=150)
def __str__(self):
return self.title
class Meta:
db_table = "City"
class User(models.Model):
username = models.CharField(max_length=150)
password = models.CharField(max_length=150)
city = models.ForeignKey(City, on_delete=models.CASCADE)
def __str__(self):
return self.username
class Meta:
db_table = "User"
class Category(models.Model):
title = models.CharField(max_length=150)
iconUrl = models.TextField()
def __str__(self):
return self.title
class Meta:
db_table = "Category"
class Food(models.Model):
title = models.CharField(max_length=150)
price = models.DecimalField(decimal_places=0, max_digits=10)
bannerUrl = models.TextField()
def __str__(self):
return self.title
class Meta:
db_table = "Food"
class ShopsFood(models.Model):
title = models.CharField(max_length=150)
rank = models.FloatField(max_length=50)
bannerUrl = models.TextField()
iconUrl = models.TextField()
category = models.OneToOneField(Category, on_delete=models.CASCADE)
city = models.OneToOneField(City, on_delete=models.CASCADE)
Foods = models.ManyToManyField(Food)
def __str__(self):
return self.title
class Meta:
db_table = "ShopsFood"
در بالا مدل های User , food , shopfood ,city, category را ساختیم
نکته : می توانید به جای ساخت مدل جدید user از مدل پیشفرض django استفاده کنید
گام سوم : migration
در ابن مرحله مدل ها را migrate می کنید
ابتدا باید یک super user بسازید که از دستور زیر استفاده کنید
python manage.py createsuperuser
در مرحله بعد باید migration را بسازید
با دستور زیر می توانید بسازید
python manage.py makemigrations
و در مرحله بعد باید migration را روی database مورد نظر اجرا کنید
با استفاده از دستور زیر می توانید اجرا کنید
python manage.py migrate
نکته : بنده از پایگاه داده پیشفرض django استفاده کردم که sqlite است شما می توانید از postgresql یا mysql استفاده کنید
ادامه مبحث در بخش ۲
مطلبی دیگر از این انتشارات
الگوریتم و فلوچارت
مطلبی دیگر از این انتشارات
انواع فریمورک های پایتون (python) و بهترین فریمورک های پایتون (python) در سال 2019
مطلبی دیگر از این انتشارات
آموزش Unit Test در Golang