Python/ django
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Ko'proq ko'rsatish📈 Telegram kanali Python/ django analitikasi
Python/ django (@pythonl) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 58 979 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 2 170-o'rinni va Rossiya mintaqasida 10 190-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 58 979 obunachiga ega bo‘ldi.
27 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -317 ga, so‘nggi 24 soatda esa -26 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.25% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.50% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 3 684 marta ko‘riladi; birinchi sutkada odatda 2 067 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 20 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent github, claude, контекст, архитектура, api kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“по всем вопросам @workakkk
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fm...”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 28 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
subprocess с принудительным сбросом привилегий. Такой приём позволяет запускать команды даже в окружениях с потенциально небезопасным вводом, блокируя доступ к опасным системным вызовам и снижая риск эксплуатации.
import subprocess
import os
def safe_run(cmd):
# Запускаем процесс без наследования переменных окружения
env = {"PATH": "/usr/bin:/bin"}
# Сбрасываем привилегии, если процесс запущен от root
def drop_priv():
os.setgid(65534)
os.setuid(65534)
result = subprocess.run(
cmd,
env=env,
preexec_fn=drop_priv,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
timeout=3,
)
return result.stdout
print(safe_run(["ls", "/"]))
@pythonlreversed(), но работает она не со всеми структурами данных. Быстрый разбор:
✓ Список можно развернуть
reversed([1, 2, 3]) возвращает итератор.
list(reversed([1, 2, 3])) → [3, 2, 1]
✓ Кортежи тоже разворачиваются
Можно итерироваться по reversed((1, 2, 3))
✓ Множества не разворачиваются
reversed({1, 2, 3}) → TypeError: 'set' object is not reversible
Причина: множества *не имеют порядка*, а значит разворачивать нечего.
Если нужно развернуть множество — сначала сделай его списком:
list(reversed(list({1, 2, 3})))
@pythonl
funcs = []
for i in range(5):
funcs.append(lambda x=i: x) # фиксируем i как значение по умолчанию
print([f() for f in funcs]) # [0, 1, 2, 3, 4]
from pathlib import Path
from collections import Counter
import json, statistics as stats
chunks = lambda it, n: [it[i:i + n] for i in range(0, len(it), n)]
flatten = lambda lst: [x for sub in lst for x in sub]
unique = lambda seq: list(dict.fromkeys(seq))
sliding = lambda it, n: [it[i:i + n] for i in range(len(it) - n + 1)]
freqs = lambda seq: Counter(seq)
read_text = lambda p: Path(p).read_text(encoding="utf-8")
write_text = lambda p, text: Path(p).write_text(text, encoding="utf-8")
read_json = lambda p: json.loads(Path(p).read_text(encoding="utf-8"))
write_json = lambda p, obj: Path(p).write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")
mean_std = lambda xs: (stats.mean(xs), stats.pstdev(xs))
@pythonl
pip install myfy
myfy init
myfy frontend init
myfy run
https://github.com/psincraian/myfy
@pythonl
copier copy gh:CuriousLearner/django-keel my-project
Репозиторий: https://github.com/CuriousLearner/django-keel
@pythonl
def is_valid(user):
return user.get("active") and user.get("role") != "banned"
def normalize(user):
user["name"] = user["name"].strip().title()
return user
def enrich(user):
user["score"] = user.get("score", 0) + 10
return user
users = [... ] # внешний источник
cleaned = [enrich(normalize(u)) for u in users if is_valid(u)]
print(cleaned)
import os, hashlib
from http.server import SimpleHTTPRequestHandler, HTTPServer
STATIC = "static"
etag = {f: hashlib.md5(open(os.path.join(STATIC, f),"rb").read()).hexdigest()
for f in os.listdir(STATIC)}
class H(SimpleHTTPRequestHandler):
def end_headers(self):
name = self.path.lstrip("/")
if name in etag:
self.send_header("ETag", etag[name])
super().end_headers()
HTTPServer(("0.0.0.0", 8000), H).serve_forever()await asyncio sleep после каждого drain(): это отдаёт управление циклу, даёт шанс другим корутинам и предотвращает монополизацию CPU.
Полезно в высоконагруженных стримерах.
простой «мягкий» троттлинг передачи данных
import asyncio
CHUNK = 32_000
async def send_smooth(writer, data: bytes):
for i in range(0, len(data), CHUNK):
writer.write(data[i:i+CHUNK])
await writer.drain()
await asyncio.sleep(0) # отдаём управление циклу
async def handle(reader, writer):
payload = b"x" * 5_000_000
await send_smooth(writer, payload)
writer.close()
await writer.wait_closed()
async def main():
srv = await asyncio.start_server(handle, "0.0.0.0", 8888)
async with srv:
await srv.serve_forever()
asyncio.run(main())
@pythonl
пример контролируемой по памяти передачи данных
import asyncio
async def handle(reader, writer):
writer.transport.set_write_buffer_limits(high=500_000, low=200_000)
while True:
writer.write(b"x" * 65536)
await writer.drain() # остановит корутину, если клиент не успевает
async def main():
server = await asyncio.start_server(handle, "0.0.0.0", 8888)
async with server:
await server.serve_forever()
asyncio.run(main())