Python/ django
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Show more📈 Analytical overview of Telegram channel Python/ django
Channel Python/ django (@pythonl) in the Russian language segment is an active participant. Currently, the community unites 58 980 subscribers, ranking 2 166 in the Technologies & Applications category and 10 177 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 58 980 subscribers.
According to the latest data from 27 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -317 over the last 30 days and by -26 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.25%. Within the first 24 hours after publication, content typically collects 3.50% reactions from the total number of subscribers.
- Post reach: On average, each post receives 3 684 views. Within the first day, a publication typically gains 2 067 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 20.
- Thematic interests: Content is focused on key topics such as github, claude, контекст, архитектура, api.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“по всем вопросам @workakkk
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fm...”
Thanks to the high frequency of updates (latest data received on 28 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
1) создать папку проекта
mkdir my_project && cd my_project
2) виртуальное окружение
python -m venv .venv
source .venv/bin/activate
3) базовые файлы
touch main.py requirements.txt .env .gitignore
4) gitignore + env
echo ".venv/
__pycache__/
.env
*.pyc" > .gitignore
# 5) полезный стартовый набор
pip install -U pip
pip install ruff black python-dotenv
https://www.youtube.com/shorts/lnKQ_2UjOfw
sudo apt update && sudo apt install -y python3-venv python3-pip nginx
sudo useradd -m -s /bin/bash app && sudo mkdir -p /opt/app && sudo chown -R app:app /opt/app
sudo -u app bash -lc 'cd /opt/app && python3 -m venv venv && ./venv/bin/pip install -U pip uvicorn fastapi'
sudo tee /etc/systemd/system/app.service >/dev/null <<'EOF'
[Unit]
After=network.target
[Service]
User=app
WorkingDirectory=/opt/app
ExecStart=/opt/app/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now app
sudo systemctl status app --no-pager
https://www.youtube.com/shorts/cbUNWU1Sbsc
import asyncio
import aiohttp
from time import perf_counter
URLS = [
"https://example.com"
for _ in range(10_000) # много запросов под нагрузкой
]
MAX_CONCURRENCY = 100 # ограничиваем параллелизм
QUEUE_SIZE = 1_000 # ограничиваем длину очереди (backpressure)
async def worker(name: int, queue: asyncio.Queue, session: aiohttp.ClientSession):
while True:
url = await queue.get()
if url is None: # сигнал завершения
queue.task_done()
break
try:
async with session.get(url, timeout=5) as resp:
await resp.text() # или resp.read()
# здесь твоя логика обработки
except Exception as e:
# логируй, но не падай
print(f"[worker {name}] error: {e}")
queue.task_done()
async def main():
queue = asyncio.Queue(maxsize=QUEUE_SIZE)
async with aiohttp.ClientSession() as session:
# поднимаем ограниченное число воркеров
workers = [
asyncio.create_task(worker(i, queue, session))
for i in range(MAX_CONCURRENCY)
]
# кидаем задачи в очередь
for url in URLS:
await queue.put(url)
# шлём сигнал завершения воркерам
for _ in workers:
await queue.put(None)
# ждём, пока всё отработает
await queue.join()
# аккуратно завершаем воркеров
for w in workers:
await w
if __name__ == "__main__":
t0 = perf_counter()
asyncio.run(main())
print(f"Done in {perf_counter() - t0:.2f}s")
Суть приёма:
Вместо «одна корутина на каждый запрос» ты держишь фиксированный пул воркеров.
Очередь с maxsize работает как предохранитель: если бэкенд/БД не успевают, продюсер начинает тормозиться.
Такой подход гораздо стабильнее под всплесками трафика, чем голый gather на десятки тысяч задач.
@pythonl
x: int = 10
name: str = "Alice"
Аргументы ЗА аннотации везде
• код становится явнее
• IDE лучше подсказывает
• меньше скрытых ошибок
• полезно в больших проектах и командах
Аргументы ПРОТИВ
• код становится грязнее
• в простом коде типы и так очевидны
• аннотации отвлекают от логики программы
• иногда разработчики подгоняют код под типы, вместо хорошего дизайна программы
Например, так делать смысла мало:
a: int = 0 # избыточно
count = 0 # и так понятно
Но если структура сложная, аннотация действительно помогает:
result: dict[str, list[int]] = {}
Где же истина
Опытные разработчики сходятся на том, что:
✔ аннотировать функции, API и сложные структуры - полезно
✖ аннотировать каждую локальную переменную - перебор
Аннотации - это инструмент для ясности, а не чек-лист, который нужно заполнять до последней строчки.
Используй их там, где они помогают понять коди не заставляй Python выглядеть как Java ради галочки 🙂
⚡️ Подробнее: https://uproger.com/🐍-nuzhno-li-annotirovat-kazhduyu-peremennuyu-v-pythonpodrobnyj-razbor-bez-fanatizma/
@pythonl