پایتون فارسی(PyCore)
228 subscribers
205 photos
105 videos
57 files
243 links
🐉پایتون فارسی
🚀آموزش و اخبار دنیای تکنولوژی
Download Telegram
پایتون فارسی(PyCore)
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود Plbenchmark-test ├── src │   └── sorting_examples.py └── test     ├── conftest.py     └── test_benchmark.p توضیحات در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم…
در ادامه مبحث بنچمارکینگ روی یک پروژه جنگویی پیاده سازی میکنیم و در نهایت با تست عملکرد برای ویوهای ساخته شده با FBV ,CBV بررسی میکنیم عملکرد و محک زدن کدوم بهتره.(Class base view, function base view)

ابتدا یک پروژه جنگویی همراه یک اپ core ایجاد میکنیم
pip install django

django-admin startproject config .

python manage.py startapp core
در دایرکتوری config
فایل settings.py
INSTALLED_APPS = [
...   
"core",
]

فایل urls.py 
path('', include('core.urls')),
در اپ core کدهای زیر رو وارد میکنیم


models.py
class CategoryModel(models.Model):
    title = models.CharField(max_length=255)
views.py
from django.views.generic import DetailView, ListView
from .models import CategoryModel


def category_list_view(request):
    objs = CategoryModel.objects.all()
    return render(request, 'core/list.html', {"objs":objs})

def category_detail_view(request, pk):
    obj = CategoryModel.objects.get(id=pk)
    return render(request, 'core/detail.html', {"obj":obj})

class CategoryListView(ListView):
    model = CategoryModel
    template_name = 'core/list.html'
    context_object_name = 'objs'

class CategoryDetailView(DetailView):
    model = CategoryModel
    template_name='core/detail.html'
    context_object_name = 'obj'
urls.py
from .views import category_list_view, category_detail_view, CategoryDetailView, CategoryListView

app_name = 'core'

urlpatterns = [
    path('fbv/', category_list_view),
    path('fbv/<pk>/', category_detail_view),
    path('cbv/', CategoryListView.as_view()),
    path('cbv/<pk>/', CategoryDetailView.as_view()),
]
دستورات makemigrations و migrate رو فراموش نکنید

الزامات مربوط به templates در settings و فایلهای list.html , detail.html رو برای اپ core بصورت ساده انجام دهید


جهت راه اندازی بنچمارکینگ نیاز به نصب سه کتابخانه داریم
pip install pytest pytest-benchmark pytest-django

در دایرکتوری root پروژه یک فایل با نام pytest.ini ساخته کدهای زیر رو در ان قرار دهید
[pytest]
DJANGO_SETTINGS_MODULE = config.settings

دلیل اینکار ازین بابت هست که بخشی از کدهای ما وابسته به اجرا شدن پروژه جنگویی می‌باشد و اجرا کردن پروژه جنگویی با صدا زدن فایل تنظیمات آن می‌باشد و به این صورت pytest اینکار رو انجام میدهد


دایرکتوری tests ساخته و داخل ان فایل test_view.py رو میسازیم و کدهای زیر رو داخل اون میزاریم
import pytest
from core.models import CategoryModel
from django.test import RequestFactory
from core.views import category_list_view, category_detail_view, CategoryListView, CategoryDetailView


@pytest.fixture
def rf():
    return RequestFactory()

@pytest.mark.fbv
def test_fbv_list(benchmark, rf):
    request = rf.get('/fbv/')
    result = benchmark(category_list_view, request)
    assert result.status_code == 200

@pytest.mark.fbv
@pytest.mark.django_db
def test_fbv_detail(benchmark, rf):
    blog_comment = CategoryModel.objects.create(title='Test')
    request = rf.get(f'/fbv/{blog_comment.pk}/')
    result = benchmark(category_detail_view, request, pk=blog_comment.pk)
    assert result.status_code == 200

@pytest.mark.cbv
def test_cbv_list(benchmark, rf):
    request = rf.get('/cbv/')
    view = CategoryListView.as_view()
    result = benchmark(view, request)
    assert result.status_code == 200

@pytest.mark.cbv
@pytest.mark.django_db
def test_cbv_detail(benchmark, rf):
    blog_comment = CategoryModel.objects.create(title='Test')
    request = rf.get(f'/cbv/{blog_comment.pk}/') 
    view = CategoryDetailView.as_view()
    result = benchmark(view, request, pk=blog_comment.pk)
    assert result.status_code == 200


دستورات زیر رو در خط فرمان بزنید
pytest -m cbv --benchmark-autosave

pytest -m fbv --benchmark-autosave

pytest-benchmark compare 0001 0002


خروجی بنچمارکینگ و تست عملکرد رو برای ویوهای FBV و CBV در جنگو رو باهم میتونید مقایسه کنید



#monitoring

#mahyar
👍5👎1
سلام به همگی
از فردا کلاس ها طبق ساعت های که بوده برگزار میشه لطفاً کسی غیبت نداشته باشه که از مباحث جا بمونه
👍3
Django rich-text editors.pdf
502.3 KB
معرفی انواع ویرایشگر های متن (rich-text editor) در جنگو

خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.

تمام ویرایشگر های متنی خصوصیت های مشترکی دارن منتهی بعضی هاشون توی ساز و کار جنگو بهتون قابلیت آپلود عکس و در کل کار با media ها رو هم فراهم می کنن و جایگاهشون خاص تر میشه.

البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce

البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.

انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره

مبنع


#djnago
#mahyar
👍4
انشالله در آینده یکم دوباره میریم سمت پایتون، تا بچه های دوره پایتون هم بتونن از مطالب استفاده کنن و کانال براشون مفید باشه.


همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.

#mahyar
👍4
۳۰ شرکت بزرگ دنیا که از پایتون استفاده می کنند
#M_Sh
@persians_python
👎3👌1
تفاوت درک کردن و مدرک داشتن
#S_Ry
👍9
🔵مهارت های برنامه نویس وب

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💻 نقشه‌ی کلی برای یادگیری پایتون✔️

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🧑‍💻 پیاده سازی های مختلف برای پایتون 💻

💥CPython
💥Rubypython
💥MicroPython

❗️جزئیات بیشتر در بخش کامنت ها (دیدگاه)


#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
توابع مفید پایتونی🔥
این قسمت:  لامبدا
🥸

لامبدا در پایتون به عنوان یک ابزار بسیار قدرتمند استفاده می‌شود که به شما این امکان را می‌دهد که توابع کوتاه و مفیدی را در یک خط کد تعریف کنید. گاهی اوقات به آن به عنوان توابع ناشناخته یا توابع بدون نام هم اشاره می‌شود.

لامبداها معمولاً در جاهایی استفاده می‌شوند که نیاز به تعریف یک تابع کوتاه و موقت دارید، بدون اینکه نیازی به تعریف یک تابع کامل باشد.

برای تعریف یک لامبدا در پایتون، از واژه کلیدی lambda استفاده می‌شود. سینتکس کلی آن به صورت زیر است:

lambda arguments: expression

در اینجا:
- arguments: ورودی‌های تابع به صورت آرگومان‌ها مشخص می‌شوند.
- expression: عبارتی که تابع باید انجام دهد.

برای مثال، اگر بخواهیم یک تابع لامبدا بنویسیم که دو عدد را جمع کند، کد زیر را می‌توانیم بنویسیم:

add = lambda x, y: x + y
print(add(3, 5))  # Output: 8


در این مثال، lambda x, y: x + y یک تابع لامبدا است که دو آرگومان x و y را می‌گیرد و جمع آن‌ها را برمی‌گرداند.                                                                                                                                                                                      توابع لامبدا به صورت پیشفرض خروجی تابع را return میکنند پس برای استفاده باید آنهارا پرینت کنید.

#lambda
#mahyar
👍4👌1
0️⃣1️⃣ ابزار برتر دیتاساینس 📇

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👌2
⌨️ بهترین زبان های برنامه نویسی در سال 🎄

💻 زبان پایتون در رتبه 1️⃣

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3
🆓 سایت های آموزشی رایگان

💻 پایتون: w3schools.com

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👌2
پایتون فارسی(PyCore)
Video
گفت گو با محمدرضا شعبانعلی در پادکست کار نکن

#mahyar
Splash Pro AI
#هوش_مصنوعی برای ایجاد آهنگ از متن

این سرویس که از هوش مصنوعی پشتیبانی می‌کند، دری را به روی دنیای خلاقیت موسیقی باز می‌کند و به شما امکان می‌دهد حتی بدون دانش عمیق موسیقی، آهنگ‌های شخصی ایجاد کنید.
@persians_python
در این پست قراره تمایز اغلب گیج کننده بین function و method هارو را بررسی کنیم🥸. هر دو بلوک های اساسی در پایتون هستند اما اهداف کمی تفاوت دارد. ما آنها را در کنار هم در قالب جدول با هم مقایسه خواهیم کرد و نمونه های کد واقعی را برای نشان دادن نحوه استفاده از هر کدام ارائه می دهیم. چه مبتدی باشید و چه به دنبال تقویت مهارت های پایتون خود باشید، این تفکیک دقیق به شما درک روشنی از زمان و نحوه استفاده موثر از function ها و method ها می دهد.

تابع(functios)در پایتون چیست؟ در پایتون، یک تابع یک بلوک از کد است که برای انجام یک کار خاص طراحی شده است. توابع به تقسیم برنامه ما به قطعات کوچکتر و ماژولار کمک می کنند. با ایجاد برنامه های پیچیده تر، توابع را می توان مجدداً مورد استفاده قرار داد و کد شما را سازماندهی و مدیریت کرد. مثالی از یک تابع:
def greet(name):
return f"Hello, {name}!"

print(greet("ali")) # Output: Hello, ali!



متد در پایتون چیست؟
متد
، به عکس تابع، یک تابع است که به یک شیء مرتبط است. در پایتون، متدها مستقل نیستند و باید بر روی یک شیء یا داخل یک کلاس فراخوانی شوند. متدها به طور ضمنی از یک شیء استفاده می‌کنند که برای آن فراخوانی شده‌اند.
برای درک بهتر به مثال زیر توجه کنید.
class Greeter:
def __init__(self, name):
self.name = name

def greet(self):
return f"Hello, {self.name}!"

g = Greeter("ali")
print(g.greet()) # Output: Hello, ali!

در اینجا، greet یک متد از کلاس Greeter است و بر روی نمونه g از آن کلاس فراخوانی می‌شود.

در ادامه چند مثال عملی رو باهم بررسی میکنیم.
Function:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

print(factorial(5)) # Output: 120

در اینجا یک تابع ساده برای به دست اوردن فاکتوریل یک عدد داریم.(5!)

Method:
class Car:
def __init__(self, make, model):
self.make = make
self.model = model

def description(self):
return f"{self.make} {self.model}"

my_car = Car("Toyota", "Corolla")
print(my_car.description()) # Output: Toyota Corolla

در اینجا تابع description یک متود است که جزئیات مربوط به یک نمونه خودرو رو نشون میده.


درک تمایز بین توابع و متودها در پایتون برای نوشتن کد واضح و موثر بسیار مهم است. توابع ماژولار بودن و قابلیت استفاده مجدد را ارائه می دهند، در حالی که متود ها ما را قادر می سازند تا رفتارهای درون اشیاء را با رعایت اصول برنامه نویسی شی گرا محصور کنیم. اینکه یک تابع یا یک روش را انتخاب کنید تا حد زیادی به نیازهای خاص برنامه و ترجیحات طراحی شما بستگی دارد. با درک این مفاهیم، ​​می توانید از انعطاف پذیری و استحکام پایتون در پروژه های برنامه نویسی خود استفاده کنید و کد خود را سازماندهی و پویا تر کنید.

منبع

#mahyar
👍1