پایتون فارسی
Ir al canal en Telegram
233
Suscriptores
+124 horas
+37 días
+1430 días
Archivo de publicaciones
233
توابع مفید پایتونی🔥
این قسمت: لامبدا🥸
لامبدا در پایتون به عنوان یک ابزار بسیار قدرتمند استفاده میشود که به شما این امکان را میدهد که توابع کوتاه و مفیدی را در یک خط کد تعریف کنید. گاهی اوقات به آن به عنوان توابع ناشناخته یا توابع بدون نام هم اشاره میشود.
لامبداها معمولاً در جاهایی استفاده میشوند که نیاز به تعریف یک تابع کوتاه و موقت دارید، بدون اینکه نیازی به تعریف یک تابع کامل باشد.
برای تعریف یک لامبدا در پایتون، از واژه کلیدی
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
#mahyar233
🧑💻 پیاده سازی های مختلف برای پایتون 💻
💥CPython
💥Rubypython
💥MicroPython
❗️جزئیات بیشتر در بخش کامنت ها (دیدگاه)
#SADRA_K
🐍 @persians_python
233
🔴ربات تپ سواپ 🔢پروژه swap بر پایه سولانا🔢هم مثل نات کوین تیک آبی ✅ گرفت .
🔗پلیرهای بازی مرز پنج میلیون را رد کردند.
🔵ربات شبیه به نات کوینه و با کلیک کردن میتونید ماین کنید .
✅لینک ورود به ربات : کلیک کنید👆
❗️با فیلترشکن وارد بشید 🌐
#SADRA_K
🐍 @persians_python
233
سلام به همگی
کلاس امروز جنگو ساعت چهار تا شش با بیست دقیقه تاخیر شروع میشه لطفاً اگه میبینید این پیام رو چهار و بیست دقیقه مجتمع باشید
233
موردی که ممکنه در آینده بدرد خودتون یا اطرافیان تون بخوره
قطعا اگر این مسیر رو ادامه بدید بدردتون میخوره
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
233
انشالله در آینده یکم دوباره سمت پایتون، تا بچه های دوره پایتون هم بتونن از مطالب استفاده کنن و کانال براشون مفید باشه
#mahyar
233
معرفی انواع ویرایشگر های متن (rich-text editor) در جنگو
خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.
تمام ویرایشگر های متنی خصوصیت های مشترکی دارن منتهی بعضی هاشون توی ساز و کار جنگو بهتون قابلیت آپلود عکس و در کل کار با media ها رو هم فراهم می کنن و جایگاهشون خاص تر میشه.
البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce
البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.
انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره
مبنع
233
سلام به همگی
از فردا کلاس ها طبق ساعت های که بوده برگزار میشه لطفاً کسی غیبت نداشته باشه که از مباحث جا بمونه
233
در ادامه مبحث بنچمارکینگ روی یک پروژه جنگویی پیاده سازی میکنیم و در نهایت با تست عملکرد برای ویوهای ساخته شده با 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