PyCoders (پایتون)
4.26K subscribers
950 photos
141 videos
67 files
195 links
#پایتون جادوگر دنیای برنامه نویسی!
◇ معرفی حوزه های کاری پایتون
◇ معرفی کتابخونه های کاربردی
◇ معرفی دوره های مفید
◇ معرفی تکنیک ها و نکات
◇ نقشه راه حوزه های مختلف
◇ اخبار و آپدیت های پایتون
◇ و هر چیزی در مورد پایتون!

■ گروه پایتون:
@programmers_py
Download Telegram
🔸 ترفندهای پایتون

🔅استفاده از functools.lru_cache برای کش کردن خروجی توابع

اگر یک تابع بارها با ورودی یکسان صدا زده می‌شود، می‌توانیم خروجی‌اش را کش کنیم تا سرعت چندبرابر شود.


@lru_cache
def fib(n):
...



✔️ مناسب توابع سنگین، API Calls، یا محاسبات تکراری

🐍 @python_rd
1
🛡 آموزش نکات امنیتی برای بک‌اند پارت سوم

نکته روش‌های جلوگیری از CSRF

🔻 اول ببینیم CSRF چیه؟
هکر کاربر را مجبور می‌کند بدون اینکه بفهمد، یک درخواست معتبر و خطرناک ارسال کند.


🔻 راه‌حل‌های قطعی:
✔️ استفاده از CSRF Token تصادفی در فرم‌ها
✔️ چک کردن Origin / Referrer Header
✔️ استفاده از SameSite Cookies
✔️ محدود کردن عملیات حساس به POST / PUT / DELETE

جنگو و فلسک (با افزونه‌ها) خودشان این را پیاده‌سازی می‌کنند.

🐍 @python_rd
تخفیف 70درصدی فقط تا فرداشب....
🔆 مسیر Django Developer
🚀 رودمپ جنگو از صفر تا جونیور

1) مبانی پایتون
Syntax، OOP، ماژول‌ها، فایل‌ها، virtualenv.


2) مبانی وب
HTTP، Request/Response، Cookie/Session، REST.


3) یادگیری Django
Project / App، URL، View، Template، Model، ORM.


4) دیتابیس
PostgreSQL + Queryهای ORM + Migrationها.


5) کار با API
Django REST Framework → ساخته‌شدن APIهای مدرن.


6) احراز هویت و امنیت
JWT، Permissionها، CSRF، مدیریت کاربر.


7) دیپلویمنت
Nginx، Gunicorn، Docker، VPS.


8) پروژه واقعی
وبلاگ، فروشگاه، سیستم مدیریت کاربر، API کامل.


🐍 @python_rd
3👍2
🔸 ترفندهای پایتون

🔅نکته Lazy Import برای سرعت اجرا

ماژول‌های سنگین را فقط در زمان نیاز import کن.


def heavy_task():
import numpy as np
return np.arange(1_000_000)



✔️ زمان شروع برنامه کمتر
✔️ مناسب اسکریپت‌های بزرگ


🐍 @python_rd
1
🔸 ترفندهای پایتون

🔅استفاده از Generator برای دیتاهای بزرگ

به جای خواندن کل فایل در RAM، خط‌به‌خط بخوان:

def read_lines(file):
for line in open(file):
yield line

for row in read_lines("big.txt"):
print(row)



✔️ مصرف حافظه خیلی کمتر
✔️ داده‌های عظیم → مشکلی نیست


🐍 @python_rd
1
🛡 آموزش نکات امنیتی برای بک‌اند پارت چهارم

نکته رمزنگاری پسورد با bcrypt

🔻 چرا bcrypt؟
چون کند طراحی شده و brute-force را سخت می‌کند (برخلاف SHA256 و MD5).

🔻 نمونه استفاده:


import bcrypt

hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
bcrypt.checkpw(password.encode(), hashed)



🔻 نکته مهم:
✔️ هرگز پسورد را hash ساده نکن
✔️ همیشه از salt استفاده کن
✔️و مطمئن باش bcrypt بهترین گزینه برای اپلیکیشن‌های بک‌اند است

🐍 @python_rd
🔥32
🔸 ترفندهای پایتون

🔅ساختن Context Manager بدون کلاس

برای ساخت یک context manager لازم نیست کلاس بنویسی.
با یک دکوراتور همه‌چیز تمیز و سریع می‌شود.:


from contextlib import contextmanager
import time

@contextmanager
def timer():
start = time.time()
yield
print("Time:", time.time() - start)

with timer():
sum(range(10_000_000))


✔️ مناسب اندازه‌گیری زمان، مدیریت فایل، اتصال DB و…


🐍 @python_rd
2
This media is not supported in your browser
VIEW IN TELEGRAM
از اون کارهای ساده و زیبا که میشه با پایتون انجامش داد


🐍 @python_rd
6
لایبرری‌های فوق العاده پایتون


🐍 @python_rd
7
🔸 ترفندهای پایتون

🔅استفاده از loguru برای لاگ‌نویسی حرفه‌ای

به جای logging استاندارد که دردسر داره، این خیلی تمیزه:


from loguru import logger

logger.info("User logged in!")




✔️ فرمت تمیز
✔️ فایل‌گردانی خودکار
✔️ قابل توسعه برای پروژه‌های بزرگ


🐍 @python_rd
4
🔸 ترفندهای پایتون

🔅فرق copy و deepcopy

در ساختارهای تودرتو خیلی مهمه.

import copy

a = [[1, 2], [3, 4]]
b = copy.copy(a)
c = copy.deepcopy(a)

a[0][0] = 999
print(b) # تاثیر می‌گیرد
print(c) # تاثیر نمی‌گیرد



✔️ در واقع copy فقط سطح اول را کپی می‌کند
✔️ اما deepcopy کل ساختار را


🐍 @python_rd
2
✨️ نقشه راه پایتون


🐍 @python_rd
1