, $indexables ); } /** * Returns the meta tags context for a url. * * @param string $url The url of the page. Required to be relative to the site url. * * @return Meta|false The meta values. False if none could be found. */ public function for_url( $url ) { $url_parts = \wp_parse_url( $url ); $site_parts = \wp_parse_url( \site_url() ); if ( ( ! \is_array( $url_parts ) || ! \is_array( $site_parts ) ) || ! isset( $url_parts['host'], $url_parts['path'], $site_parts['host'], $site_parts['scheme'] ) ) { return false; } if ( $url_parts['host'] !== $site_parts['host'] ) { return false; } // Ensure the scheme is consistent with values in the DB. $url = $site_parts['scheme'] . '://' . $url_parts['host'] . $url_parts['path']; if ( $this->is_date_archive_url( $url ) ) { $indexable = $this->repository->find_for_date_archive(); } else { $indexable = $this->repository->find_by_permalink( $url ); } // If we still don't have an indexable abort, the WP globals could be anything so we can't use the unknown indexable. if ( ! $indexable ) { return false; } $page_type = $this->indexable_helper->get_page_type_for_indexable( $indexable ); if ( $page_type === false ) { return false; } return $this->build_meta( $this->context_memoizer->get( $indexable, $page_type ) ); } /** * Checks if a given URL is a date archive URL. * * @param string $url The url. * * @return bool */ protected function is_date_archive_url( $url ) { $path = \wp_parse_url( $url, \PHP_URL_PATH ); if ( $path === null ) { return false; } $path = \ltrim( $path, '/' ); $wp_rewrite = $this->wp_rewrite_wrapper->get(); $date_rewrite = $wp_rewrite->generate_rewrite_rules( $wp_rewrite->get_date_permastruct(), \EP_DATE ); $date_rewrite = \apply_filters( 'date_rewrite_rules', $date_rewrite ); foreach ( (array) $date_rewrite as $match => $query ) { if ( \preg_match( "#^$match#", $path ) ) { return true; } } return false; } /** * Creates a new meta value object * * @param Meta_Tags_Context $context The meta tags context. * * @return Meta The meta value */ protected function build_meta( Meta_Tags_Context $context ) { return new Meta( $context, $this->container ); } } توابع پرکاربرد پایتون | سیدسلیم

توابع پرکاربرد پایتون

توابع پرکاربرد پایتون

 ( با محوریت جنگو):

قبل از اینکه توابع پرکاربرد پایتون و سینتکس کاربردی جنگو را خدمتتان ارائه کنم اول باید بدانیم که جنگو چیست ؟

جنگو (Django) یک فریم‌ورک وب محبوب و متن‌باز برای زبان برنامه‌نویسی پایتون است.

هدف اصلی آن ساده‌سازی فرآیند توسعه وب و ارائه امکانات لازم برای ساخت سریع و کارآمد برنامه‌های وب پویاست.

ویژگی‌های کلیدی جنگو شامل:

  1. ساختار MVC: جنگو از الگوی طراحی مدل-نما-کنترل‌گر (MVC) پیروی می‌کند که سازماندهی کد را تسهیل می‌کند.
  2. مدل ORM: این فریم‌ورک از یک سیستم ORM (مدل رابط شیء) استفاده می‌کند که به برنامه‌نویسان اجازه می‌دهد تا با پایگاه داده‌ها به صورت شیء‌گرا کار کنند.
  3. امنیت: جنگو به طور پیش‌فرض امکانات امنیتی مختلفی دارد که توسعه‌دهندگان را در برابر حملات رایجی مانند تزریق SQL و CSRF محافظت می‌کند.
  4. مدیریت پیشرفته: یکی از ویژگی‌های منحصر به فرد جنگو، پنل مدیریت اتوماتیک آن است که به راحتی می‌توان از آن برای مدیریت داده‌ها استفاده کرد.
  5. کتابخانه‌های غنی: جنگو دارای مجموعه‌ای کامل از کتابخانه‌ها و پلاگین‌هاست که به توسعه‌دهندگان کمک می‌کند تا قابلیت‌های برنامه خود را افزایش دهند.

این فریم‌ورک به دلیل سادگی و قابلیت‌های قدرتمندش به سرعت در بین برنامه‌نویسان محبوب شده است.

عنوان توضیح  نحوه نوشتاری در ساختار
 `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()`

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *