پایتون فارسی(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 ایجاد میکنیم
models.py
الزامات مربوط به templates در settings و فایلهای list.html , detail.html رو برای اپ core بصورت ساده انجام دهید
جهت راه اندازی بنچمارکینگ نیاز به نصب سه کتابخانه داریم
در دایرکتوری root پروژه یک فایل با نام pytest.ini ساخته کدهای زیر رو در ان قرار دهید
دلیل اینکار ازین بابت هست که بخشی از کدهای ما وابسته به اجرا شدن پروژه جنگویی میباشد و اجرا کردن پروژه جنگویی با صدا زدن فایل تنظیمات آن میباشد و به این صورت pytest اینکار رو انجام میدهد
دایرکتوری tests ساخته و داخل ان فایل test_view.py رو میسازیم و کدهای زیر رو داخل اون میزاریم
دستورات زیر رو در خط فرمان بزنید
خروجی بنچمارکینگ و تست عملکرد رو برای ویوهای FBV و CBV در جنگو رو باهم میتونید مقایسه کنید
#monitoring
#mahyar
ابتدا یک پروژه جنگویی همراه یک اپ core ایجاد میکنیم
pip install djangoدر دایرکتوری config
django-admin startproject config .
python manage.py startapp core
فایل settings.pyدر اپ core کدهای زیر رو وارد میکنیم
INSTALLED_APPS = [
...
"core",
]
فایل urls.py
path('', include('core.urls')),
models.py
class CategoryModel(models.Model):views.py
title = models.CharField(max_length=255)
from django.views.generic import DetailView, ListViewurls.py
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'
from .views import category_list_view, category_detail_view, CategoryDetailView, CategoryListViewدستورات makemigrations و migrate رو فراموش نکنید
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()),
]
الزامات مربوط به 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
خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.
تمام ویرایشگر های متنی خصوصیت های مشترکی دارن منتهی بعضی هاشون توی ساز و کار جنگو بهتون قابلیت آپلود عکس و در کل کار با media ها رو هم فراهم می کنن و جایگاهشون خاص تر میشه.
البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce
البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.
انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره
مبنع
#djnago
#mahyar
👍4
انشالله در آینده یکم دوباره میریم سمت پایتون، تا بچه های دوره پایتون هم بتونن از مطالب استفاده کنن و کانال براشون مفید باشه.
همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.
#mahyar
همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.
#mahyar
👍4
موردی که ممکنه در آینده بدرد خودتون یا اطرافیان تون بخوره
قطعا اگر این مسیر رو ادامه بدید بدردتون میخوره
https://virgool.io/applymag/%DA%86%D8%B7%D9%88%D8%B1-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A8%D8%A7-%DB%B3%DB%B0%DB%B0-%DB%8C%D9%88%D8%B1%D9%88-%D8%AA%D9%88-%D8%A7%D8%B1%D9%88%D9%BE%D8%A7-%D8%B4%D8%B1%DA%A9%D8%AA-%D8%AB%D8%A8%D8%AA-%DA%A9%D9%86%DB%8C%D9%85-ubgyakdugueb
#M_Sh
@persians_python
قطعا اگر این مسیر رو ادامه بدید بدردتون میخوره
https://virgool.io/applymag/%DA%86%D8%B7%D9%88%D8%B1-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A8%D8%A7-%DB%B3%DB%B0%DB%B0-%DB%8C%D9%88%D8%B1%D9%88-%D8%AA%D9%88-%D8%A7%D8%B1%D9%88%D9%BE%D8%A7-%D8%B4%D8%B1%DA%A9%D8%AA-%D8%AB%D8%A8%D8%AA-%DA%A9%D9%86%DB%8C%D9%85-ubgyakdugueb
#M_Sh
@persians_python
ویرگول
چطور به عنوان یه ایرانی با ۳۰۰ یورو تو اروپا شرکت ثبت کنیم؟
اگر شما برنامه نویس هستید و تو ایران (یا هرجای دیگه دنیا) زندگی میکنید ممکنه دنبال شغل ریموت از بقیه دنیا یا حتی ایدهای جهانی دارید ولی از…
👍2👎1
پایتون فارسی(PyCore)
۳۰ شرکت بزرگ دنیا که از پایتون استفاده می کنند #M_Sh @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#SADRA_K
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
توابع مفید پایتونی🔥
این قسمت: لامبدا🥸
لامبدا در پایتون به عنوان یک ابزار بسیار قدرتمند استفاده میشود که به شما این امکان را میدهد که توابع کوتاه و مفیدی را در یک خط کد تعریف کنید. گاهی اوقات به آن به عنوان توابع ناشناخته یا توابع بدون نام هم اشاره میشود.
لامبداها معمولاً در جاهایی استفاده میشوند که نیاز به تعریف یک تابع کوتاه و موقت دارید، بدون اینکه نیازی به تعریف یک تابع کامل باشد.
برای تعریف یک لامبدا در پایتون، از واژه کلیدی
در اینجا:
-
-
برای مثال، اگر بخواهیم یک تابع لامبدا بنویسیم که دو عدد را جمع کند، کد زیر را میتوانیم بنویسیم:
در این مثال،
#lambda
#mahyar
این قسمت: لامبدا🥸
لامبدا در پایتون به عنوان یک ابزار بسیار قدرتمند استفاده میشود که به شما این امکان را میدهد که توابع کوتاه و مفیدی را در یک خط کد تعریف کنید. گاهی اوقات به آن به عنوان توابع ناشناخته یا توابع بدون نام هم اشاره میشود.
لامبداها معمولاً در جاهایی استفاده میشوند که نیاز به تعریف یک تابع کوتاه و موقت دارید، بدون اینکه نیازی به تعریف یک تابع کامل باشد.
برای تعریف یک لامبدا در پایتون، از واژه کلیدی
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
Splash Pro AI
#هوش_مصنوعی برای ایجاد آهنگ از متن
این سرویس که از هوش مصنوعی پشتیبانی میکند، دری را به روی دنیای خلاقیت موسیقی باز میکند و به شما امکان میدهد حتی بدون دانش عمیق موسیقی، آهنگهای شخصی ایجاد کنید.
@persians_python
#هوش_مصنوعی برای ایجاد آهنگ از متن
این سرویس که از هوش مصنوعی پشتیبانی میکند، دری را به روی دنیای خلاقیت موسیقی باز میکند و به شما امکان میدهد حتی بدون دانش عمیق موسیقی، آهنگهای شخصی ایجاد کنید.
@persians_python
در این پست قراره تمایز اغلب گیج کننده بین function و method هارو را بررسی کنیم🥸. هر دو بلوک های اساسی در پایتون هستند اما اهداف کمی تفاوت دارد. ما آنها را در کنار هم در قالب جدول با هم مقایسه خواهیم کرد و نمونه های کد واقعی را برای نشان دادن نحوه استفاده از هر کدام ارائه می دهیم. چه مبتدی باشید و چه به دنبال تقویت مهارت های پایتون خود باشید، این تفکیک دقیق به شما درک روشنی از زمان و نحوه استفاده موثر از function ها و method ها می دهد.
تابع(functios)در پایتون چیست؟ در پایتون، یک تابع یک بلوک از کد است که برای انجام یک کار خاص طراحی شده است. توابع به تقسیم برنامه ما به قطعات کوچکتر و ماژولار کمک می کنند. با ایجاد برنامه های پیچیده تر، توابع را می توان مجدداً مورد استفاده قرار داد و کد شما را سازماندهی و مدیریت کرد. مثالی از یک تابع:
متد در پایتون چیست؟
متد، به عکس تابع، یک تابع است که به یک شیء مرتبط است. در پایتون، متدها مستقل نیستند و باید بر روی یک شیء یا داخل یک کلاس فراخوانی شوند. متدها به طور ضمنی از یک شیء استفاده میکنند که برای آن فراخوانی شدهاند.
برای درک بهتر به مثال زیر توجه کنید.
در اینجا، greet یک متد از کلاس Greeter است و بر روی نمونه g از آن کلاس فراخوانی میشود.
در ادامه چند مثال عملی رو باهم بررسی میکنیم.
Function:
در اینجا یک تابع ساده برای به دست اوردن فاکتوریل یک عدد داریم.(5!)
Method:
در اینجا تابع description یک متود است که جزئیات مربوط به یک نمونه خودرو رو نشون میده.
درک تمایز بین توابع و متودها در پایتون برای نوشتن کد واضح و موثر بسیار مهم است. توابع ماژولار بودن و قابلیت استفاده مجدد را ارائه می دهند، در حالی که متود ها ما را قادر می سازند تا رفتارهای درون اشیاء را با رعایت اصول برنامه نویسی شی گرا محصور کنیم. اینکه یک تابع یا یک روش را انتخاب کنید تا حد زیادی به نیازهای خاص برنامه و ترجیحات طراحی شما بستگی دارد. با درک این مفاهیم، می توانید از انعطاف پذیری و استحکام پایتون در پروژه های برنامه نویسی خود استفاده کنید و کد خود را سازماندهی و پویا تر کنید.
منبع
#mahyar
تابع(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