🔸 ترفندهای پایتون
🔅استفاده از functools.lru_cache برای کش کردن خروجی توابع
اگر یک تابع بارها با ورودی یکسان صدا زده میشود، میتوانیم خروجیاش را کش کنیم تا سرعت چندبرابر شود.
✔️ مناسب توابع سنگین، API Calls، یا محاسبات تکراری
🐍 @python_rd
🔅استفاده از 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
نکته روشهای جلوگیری از CSRF
🔻 اول ببینیم CSRF چیه؟
هکر کاربر را مجبور میکند بدون اینکه بفهمد، یک درخواست معتبر و خطرناک ارسال کند.
🔻 راهحلهای قطعی:
✔️ استفاده از CSRF Token تصادفی در فرمها
✔️ چک کردن Origin / Referrer Header
✔️ استفاده از SameSite Cookies
✔️ محدود کردن عملیات حساس به POST / PUT / DELETE
جنگو و فلسک (با افزونهها) خودشان این را پیادهسازی میکنند.
🐍 @python_rd
🔆 مسیر 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
🚀 رودمپ جنگو از صفر تا جونیور
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 کن.
✔️ زمان شروع برنامه کمتر
✔️ مناسب اسکریپتهای بزرگ
🐍 @python_rd
🔅نکته Lazy Import برای سرعت اجرا
ماژولهای سنگین را فقط در زمان نیاز import کن.
def heavy_task():
import numpy as np
return np.arange(1_000_000)
✔️ زمان شروع برنامه کمتر
✔️ مناسب اسکریپتهای بزرگ
🐍 @python_rd
❤1
🔸 ترفندهای پایتون
🔅استفاده از Generator برای دیتاهای بزرگ
به جای خواندن کل فایل در RAM، خطبهخط بخوان:
✔️ مصرف حافظه خیلی کمتر
✔️ دادههای عظیم → مشکلی نیست
🐍 @python_rd
🔅استفاده از 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).
🔻 نمونه استفاده:
🔻 نکته مهم:
✔️ هرگز پسورد را hash ساده نکن
✔️ همیشه از salt استفاده کن
✔️و مطمئن باش bcrypt بهترین گزینه برای اپلیکیشنهای بکاند است
🐍 @python_rd
نکته رمزنگاری پسورد با 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
🔥3❤2
🔸 ترفندهای پایتون
🔅ساختن Context Manager بدون کلاس
برای ساخت یک context manager لازم نیست کلاس بنویسی.
با یک دکوراتور همهچیز تمیز و سریع میشود.:
✔️ مناسب اندازهگیری زمان، مدیریت فایل، اتصال DB و…
🐍 @python_rd
🔅ساختن 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
🔸 ترفندهای پایتون
🔅استفاده از loguru برای لاگنویسی حرفهای
به جای logging استاندارد که دردسر داره، این خیلی تمیزه:
✔️ فرمت تمیز
✔️ فایلگردانی خودکار
✔️ قابل توسعه برای پروژههای بزرگ
🐍 @python_rd
🔅استفاده از loguru برای لاگنویسی حرفهای
به جای logging استاندارد که دردسر داره، این خیلی تمیزه:
from loguru import logger
logger.info("User logged in!")
✔️ فرمت تمیز
✔️ فایلگردانی خودکار
✔️ قابل توسعه برای پروژههای بزرگ
🐍 @python_rd
❤4
🔸 ترفندهای پایتون
🔅فرق copy و deepcopy
در ساختارهای تودرتو خیلی مهمه.
✔️ در واقع copy فقط سطح اول را کپی میکند
✔️ اما deepcopy کل ساختار را
🐍 @python_rd
🔅فرق 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