توابع پرکاربرد پایتون
( با محوریت جنگو):
قبل از اینکه توابع پرکاربرد پایتون و سینتکس کاربردی جنگو را خدمتتان ارائه کنم اول باید بدانیم که جنگو چیست ؟
جنگو (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()` |