توابع پرکاربرد پایتون
( با محوریت جنگو):
قبل از اینکه توابع پرکاربرد پایتون و سینتکس کاربردی جنگو را خدمتتان ارائه کنم اول باید بدانیم که جنگو چیست ؟
جنگو (Django) یک فریمورک وب محبوب و متنباز برای زبان برنامهنویسی پایتون است.
هدف اصلی آن سادهسازی فرآیند توسعه وب و ارائه امکانات لازم برای ساخت سریع و کارآمد برنامههای وب پویاست.
ویژگیهای کلیدی جنگو شامل:
- ساختار MVC: جنگو از الگوی طراحی مدل-نما-کنترلگر (MVC) پیروی میکند که سازماندهی کد را تسهیل میکند.
- مدل ORM: این فریمورک از یک سیستم ORM (مدل رابط شیء) استفاده میکند که به برنامهنویسان اجازه میدهد تا با پایگاه دادهها به صورت شیءگرا کار کنند.
- امنیت: جنگو به طور پیشفرض امکانات امنیتی مختلفی دارد که توسعهدهندگان را در برابر حملات رایجی مانند تزریق SQL و CSRF محافظت میکند.
- مدیریت پیشرفته: یکی از ویژگیهای منحصر به فرد جنگو، پنل مدیریت اتوماتیک آن است که به راحتی میتوان از آن برای مدیریت دادهها استفاده کرد.
- کتابخانههای غنی: جنگو دارای مجموعهای کامل از کتابخانهها و پلاگینهاست که به توسعهدهندگان کمک میکند تا قابلیتهای برنامه خود را افزایش دهند.
این فریمورک به دلیل سادگی و قابلیتهای قدرتمندش به سرعت در بین برنامهنویسان محبوب شده است.
| عنوان | توضیح | نحوه نوشتاری در ساختار |
| `render` | برای رندر کردن صفحات ، با استفاده از تمپلیتها | `return render(request, ‘index.html’)` |
| `url` | برای ایجاد آدرس های داینامیک در تمپلیت | `<a href=”{% url ‘home’ %}”>Home</a>` |
| `get_object_or_404` | برای گرفتن یک شیء یا برگرداندن خطای 404 وقتی پیدا نشود | `post = get_object_or_404(Post, pk=1)` |
| `redirect` | هدایت | `return redirect(‘homepage’)` |
| `HttpResponse` | برای برگرداندن یک پاسخ | `return HttpResponse(“Hello, world!”)` |
| `Http404` | برای ایجاد خطای 404 | `raise Http404(“This page does not exist”)` |
| `@login_required` | برای نیاز به ورود به سیستم برای دسترسی به یک نما | `@login_required` |
| `Model.objects.all()` | برای گرفتن تمام رکوردهای یک مدل | `posts = Post.objects.all()` |
| `Model.objects.filter()` | برای فیلتر کردن رکوردهای یک مدل بر اساس شرایط | `posts = Post.objects.filter(author=’Alice’)` |
| `Model.objects.get()` | برای گرفتن یک رکورد خاص از مدل | `post = Post.objects.get(pk=1)` |
| `Model.save()` | برای ذخیره یک شیء به پایگاه داده | `post.save()` |
| `Model.delete()` | برای حذف یک شیء از پایگاه داده | `post.delete()` |
| `@csrf_exempt` | برای غیرفعال کردن حفاظت ( ) برای یک نما | `@csrf_exempt` |
| `@require_POST` | برای محدود کردن یک نما به روش پست | `@require_POST` |
| `forms.ModelForm` | برای ایجاد فرمها از مدلها | `class PostForm(forms.ModelForm):` |
| `forms.ValidationError` | برای ایجاد خطای ولیدیشن در فرمها | `raise forms.ValidationError(“Invalid data”)` |
| `settings` | دسترسی به تنظیمات پروژه | `from django.conf import settings` |
| `MEDIA_URL` | برای دسترسی به آدرس های مربوط به رسانهها | `settings.MEDIA_URL` |
| `STATIC_URL` | برای دسترسی به مربوط آدرس فایلهای استاتیک | `settings.STATIC_URL` |
| `signals.post_save` | برای انجام عملی بعد از ذخیره یک شیء | `@receiver(post_save, sender=Post)` |
| `cache.get()` | برای دریافت داده از کش | `data = cache.get(‘my_key’)` |
| `cache.set()` | برای ذخیره داده در کش | `cache.set(‘my_key’, ‘my_value’, timeout=60)` |
| `create_user()` | برای ایجاد یک کاربر جدید در پایگاه داده | `User.objects.create_user(username, password)` |
| `get_user_model()` | برای دریافت مدل کاربر فعلی | `User = get_user_model()` |
| `bulk_create()` | برای ایجاد چند شیء به صورت همزمان | `Post.objects.bulk_create([Post(…), Post(…)])` |
| `@admin.register` | برای ثبت یک مدل در پنل ادمین | `@admin.register(Post)` |
| `class Meta` | برای تعیین تنظیمات مدل مانند نام پایگاه داده | `class Meta: db_table = ‘my_table’` |
| `startapp` | برای ایجاد یک اپلیکیشن جدید در پروژه جنگو | `django-admin startapp myapp` |
| `makemigrations` | برای ایجاد فایلهای مهاجرت | `python manage.py makemigrations` |
| `migrate` | برای اجرای مهاجرتها | `python manage.py migrate` |
| `runserver` | برای راهاندازی سرور توسعه | `python manage.py runserver` |
| `shell` | برای دسترسی به محیط تعاملی پایتون در جنگو | `python manage.py shell` |
| `collectstatic` | برای جمعآوری فایلهای استاتیک برای تولید | `python manage.py collectstatic` |
| `test` | برای اجرای تستهای مرتبط با پروژه | `python manage.py test` |
| `forms.fields.CharField` | برای ایجاد فیلد کاراکتری در فرم | `name = forms.CharField(max_length=100)` |
| `forms.fields.EmailField` | برای ایجاد فیلد ایمیل در فرم | `email = forms.EmailField()` |
| `forms.fields.IntegerField` | برای ایجاد فیلد عدد صحیح در فرم | `age = forms.IntegerField()` |
| `@admin.action` | برای ایجاد عملی در پنل ادمین | `@admin.action(description=’Mark selected’)` |
| `@property` | برای تعریف ویژگیهای محاسبه شده در مدل | `@property def is_published(self): return self.status == ‘published’` |
| `@receiver` | برای گوش دادن به سیگنالها | `@receiver(signal, sender=MyModel)` |
| `notify_user` | برای ارسال اطلاعیه به یک کاربر (فرضی) | `notify_user(user, “Message”)` |
| `class View` | برای ایجاد نماهای مبتنی بر کلاس | `class HomeView(View):` |
| `HttpResponseRedirect` | برای ایجاد پاسخ هدایت به یک ادرس | `return HttpResponseRedirect(‘/somewhere/’)` |
| `path()` | برای تعریف مسیر آدرس ها | `urlpatterns = [path(‘home/’, HomeView.as_view())]` |
| `get_context_data()` | برای افزودن دادههای اضافی به زمینه در نماهای مبتنی بر کلاس | `def get_context_data(self, **kwargs):` |
| `staticfiles_storage` | برای دسترسی به فایلهای استاتیک در اپلیکیشن | `from django.contrib.staticfiles.storage import staticfiles_storage` |
| `DateTimeField` | برای تعریف فیلد تاریخ و زمان در مدل | `published_date = models.DateTimeField()` |
| `get_absolute_url()` | برای تعریف آدرس های مربوط به یک شیء خاص | `def get_absolute_url(self): return reverse(‘post_detail’, args=[self.pk])` |
| `first()` | برای دریافت اولین رکورد از یک کوئری | `first_post = Post.objects.first()` |
| `distinct()` | برای دریافت رکوردهای منحصربهفرد | `unique_posts = Post.objects.distinct()` |

