NeuroCatalog | Каталог Нейросетей Нейросети | Midjourney | Промты | AI | Prompts | OpenAi | ChatGPT | Искусственный Интеллект
رفتن به کانال در Telegram
6 820
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-47 روز
-14230 روز
آرشیو پست ها
Django REST Framework и Vue против Django и HTMX
Статья сравнивает два подхода к созданию веб-приложений с Django: использование Django REST Framework (DRF) и Vue.js для полного разделения фронтенда и бэкенда, а также использование Django с HTMX для более интегрированного подхода с серверным рендерингом. В статье обсуждаются плюсы и минусы каждого из этих решений, включая вопросы сложности, производительности и удобства для разработчика.
https://testdriven.io/blog/drf-vue-vs-django-htmx/
👉
Создаем чат-бота на Python: Полное руководство
В статье автор рассказывает, как создать чат-бота на Python с использованием библиотек NLTK и TensorFlow. Она охватывает подготовку среды разработки, обработку текста, обучение модели и интеграцию её в бота. Даны примеры кода для выполнения каждой задачи, включая обработку текста, построение модели и реализацию логики ответов. В статье также приведены полезные ресурсы для дальнейшего изучения NLP и машинного обучения.
https://habr.com/ru/articles/792148/
👉
Зачем нужен pdb?
pdb (Python Debugger) — это встроенный отладчик Python, который помогает разработчикам находить и исправлять ошибки в коде. С помощью pdb можно управлять выполнением программы шаг за шагом, просматривать и изменять значения переменных, устанавливать точки останова и диагностировать причину ошибок. Вот основные функции и задачи pdb:
Основные возможности pdb:
1. Точки останова (breakpoints): Можно установить точку в коде, где выполнение программы остановится, чтобы проверить текущее состояние переменных и выполнения.
import pdb; pdb.set_trace() # Остановка программы в этом месте
2. Шаговое выполнение кода:
- n (next) — Выполняет следующую строку кода.
- s (step) — Переходит внутрь функции, если строка кода — это вызов функции.
- c (continue) — Продолжает выполнение до следующей точки останова.
3. Просмотр значений переменных:
- Можно вводить имя переменной, чтобы узнать ее текущее значение на любой остановке программы.
- Можно выполнять Python-команды прямо в отладчике для анализа данных.
4. Отслеживание стека вызовов:
- Команды where или w показывают текущий стек вызовов, что помогает понять, в какой части программы находится ошибка.
5. Динамическое изменение кода:
- Во время отладки можно изменять значения переменных, что помогает тестировать различные сценарии и предположения прямо во время выполнения программы.
Пример использования pdb:
import pdb
def divide(a, b):
pdb.set_trace() # Остановка для проверки переменных
return a / b
result = divide(10, 0)
print(result)
Этот пример вызовет ошибку деления на ноль, и отладчик pdb остановится перед ошибкой, что позволит просмотреть значения a и b.
Когда использовать pdb
- Для диагностики сложных ошибок, которые трудно отследить с помощью обычных print() или logging.
- При разработке и тестировании сложных функций или алгоритмов.
- В ситуациях, когда необходимо детально понять, почему код работает не так, как ожидалось.
pdb — мощный инструмент, который помогает программистам эффективно находить ошибки и улучшать качество кода.
👉Python 3.13, что не попало в заголовки
Python 3.13 — отличный релиз, полный различных фич и улучшений, но уже есть тонна статей, которые подробно разбирают release notes. Если вам нужна хорошая выжимка — у RealPython есть хорошая статья, но я не вижу смысла проходиться по ним еще раз в этой статье.
Так что мы не будем говорить про новый REPL, no‑GIL сборку, экспериментальный JIT‑компилятор, устаревшие штуки, новые плюшки системы типов или улучшенные сообщения об ошибках (как всегда, мое любимое).
Вместо этого я прочитал коротенькую книжку, которую они называют ченджлогом и мы посмотрим на то, о чем многие не говорили, но заинтересовало лично меня.
https://habr.com/ru/companies/beget/articles/856288/
original https://www.bitecode.dev/p/python-313-what-didnt-make-the-headlines
👉
Декораторы Python: пошаговое руководство
Понимание декораторов является важной вехой для любого программиста Python. Эта статья представляет собой пошаговое руководство о том, как декораторы могут помочь вам стать более эффективным и продуктивным разработчиком на Python.
Декораторы в Python позволяют расширять и изменять поведение вызываемых объектов (функций, методов и классов) без постоянного изменения самого вызываемого объекта.
Любая достаточно общая функциональность, которую можно «прикрепить» к поведению существующего класса или функции, является отличным примером использования декораторов.
Сюда входит:
- журналирование,
- обеспечение контроля доступа и аутентификации,
- инструментарий и функции управления временем,
- ограничение скорости,
- кэширование и многое другое.
Rus https://habr.com/ru/companies/otus/articles/727590/
Eng https://dbader.org/blog/python-decorators
👉
Поиск самой быстрой JSON-библиотеки на Python (8 сравнений)
Большинство тестов производительности, подобных этому, включают всего четыре библиотеки JSON: обычно стандартную библиотеку JSON, orjson, ujson и rapidjson. Однако, благодаря моему максималистскому подходу, я решил пойти гораздо дальше и найти все библиотеки JSON, которые так или иначе можно использовать, и протестировать их. Таким образом я обнаружил некоторых «новых игроков», таких как cysimdjson, yapic.json и pysimdjson.
orjson: ijl/orjson
pysimdjson: TkTech/pysimdjson
yapic.json: zozzz/yapic.json
simplejson: simplejson/simplejson
ujson: ultrajson/ultrajson
python-rapidjson: python-rapidjson/python-rapidjson
cysimdjson: TeskaLabs/cysimdjson
nujson (deprecated): caiyunapp/ultrajson
https://catnotfoundnear.github.io/finding-the-fastest-python-json-library-on-all-python-versions-8-compared.html
👉
Техническое собеседование на позицию Python Junior
источник
👉
Самый быстрый способ чтения Excel в Python: чтение 500 тысяч строк менее чем за 4 секунды
У меня нет данных, чтобы подтвердить это утверждение, но я почти уверен, что Excel — самый распространённый способ хранения, обработки и, да(!), даже передачи данных. Именно поэтому нередко приходится работать с Excel в Python. Недавно мне понадобилось это сделать, и я протестировал и оценил несколько способов чтения файлов Excel в Python.
https://hakibenita.com/fast-excel-python#results-summary
👉
Типизация в Python
Динамическая типизация позволяет определять и изменять тип переменных во время выполнения программы, в отличие от статической, при которой типы данных определяются на этапе компиляции и не подлежат изменениям. Динамическая типизация позволяет уменьшить сложность кода, но при этом возрастает риск появления ошибок, связанных с неправильным типом данных.
Аннотации типов можно использовать для типизации функций Python. В функциях можно аннотировать аргументы функций, их возвращаемые значения, декораторы функции и т.д.
def find_max(numbers: List[int]) -> int:
if not numbers:
raise ValueError(“Список пуст”)
max_value: int = numbers[0]
for num in numbers:
if num > max_value:
max_value = num
return max_value
https://telegra.ph/Tipizaciya-v-Python-11-01
👉Что такое «сырые» строки (Raw Strings) в Python?
В Python "сырые" строки (или **raw strings**) — это строки, в которых символы обратного слэша
\ воспринимаются буквально, а не как специальные символы (например, \n для новой строки, \t для табуляции и т. д.). Они обозначаются префиксом r перед строкой, например: r"строка".
Сырые строки удобны, когда вам нужно использовать много обратных слэшей, например, в путях к файлам или регулярных выражениях, где \ часто встречается. Сырые строки упрощают код и помогают избежать ошибок, связанных с экранированием символов.
Пример использования
# Обычная строка
print("C:\\new_folder\\file.txt") # Выводит: C:\new_folder\file.txt
# Сырая строка
print(r"C:\new_folder\file.txt") # Выводит: C:\new_folder\file.txt
В первом случае \\ используется для экранирования, чтобы Python не воспринял \n как символ новой строки. В случае сырой строки r"...", экранирование не нужно, так как \ воспринимается буквально.
👉Что такое хуки? Как они используются в Python?
Хуки (hooks) в программировании — это специальные точки в коде, в которые можно «вклиниться», чтобы изменить или расширить поведение программы без модификации её исходного кода. Хуки позволяют добавлять дополнительную логику или выполнять нужные действия, когда происходят определенные события.
⚫️Как хуки используются в Python?
В Python хуки часто реализуются в библиотеках и фреймворках для того, чтобы пользователи могли добавлять свои функции, выполняющиеся при определённых событиях. Они применяются в тестировании, веб-разработке, обработке данных и многих других областях. Вот несколько примеров использования хуков в Python:
1. Тестовые фреймворки (например, pytest):
В тестовом фреймворке pytest есть хуки для настройки и завершения тестов. Вы можете создать функции, которые будут выполняться до начала тестов (`pytest_runtest_setup`) или после их завершения (`pytest_runtest_teardown`). Это удобно для создания и очистки тестовой среды.
# Пример hook-функции в pytest
def pytest_runtest_setup(item):
print(f"Setting up for test: {item.name}")
2. Веб-фреймворки (например, Django):
В Django хуки используются для расширения поведения, например, перед или после сохранения объекта. Так, у моделей Django есть хуки pre_save и post_save, которые позволяют выполнять код до и после сохранения объекта в базе данных.
from django.db.models.signals import pre_save
from django.dispatch import receiver
from .models import MyModel
(pre_save, sender=MyModel)
def my_hook(sender, instance, **kwargs):
print("This runs before saving MyModel instance.")
3. Flask (перед/после обработки запроса):
Flask имеет хуки before_request и after_request, которые позволяют выполнить код до обработки HTTP-запроса или после отправки ответа.
from flask import Flask
app = Flask(__name__)
.before_request
def before_request_func():
print("This runs before each request")
.after_request
def after_request_func(response):
print("This runs after each request")
return response
4. Логирование и обработка ошибок:
Встроенный модуль logging в Python поддерживает хуки для настраиваемой обработки логов, например, через методы addFilter или создание своих обработчиков (`handlers`), чтобы настроить кастомное поведение логирования.
Хуки гибкие и удобные, поскольку они позволяют разработчику интегрировать собственную логику в существующий код, не изменяя его.
👉Сравнение производительности dict() и {} в Python
Какое-то время назад, во время разбора кода, мы обсудили выбор
dict() вместо {} в новом коде на Python. Коллега утверждал, что dict() более читаем и чётче выражает предназначение кода, поэтому следует предпочесть его. Меня это не убедило, но в тот момент контраргументов не нашлось, поэтому я воздержался.
Это заставило меня задуматься: в чём разница между типом dict и литеральным выражением {}?
https://habr.com/ru/articles/788440/
original https://madebyme.today/blog/python-dict-vs-curly-brackets/
👉Справочник по Django
Django Software Foundation (2024)
👉
HTTP-сервер Rust для приложений на Python
Особенности
Поддерживает интерфейсные приложения ASGI/3, RSGI и WSGI
Реализует протоколы HTTP/1 и HTTP/2
Поддерживает HTTPS
Поддержка Websockets
https://github.com/emmett-framework/granian
👉
PikaScript
Ультралегкий интерпретатор Python, работающий всего с 4 КБ оперативной памяти, с нулевыми зависимостями. Он готов к использованию из коробки, не требует конфигурации и легко расширяется с помощью языка C. Похожие проекты: MicroPython, JerryScript.
Все это позволяет вам программировать на языке Python даже для самых маломощных микроконтроллеров семейства STM32
https://github.com/pikasTech/PikaPython
👉
Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django
Меня зовут Вячеслав Разводов, и я уже более 10 лет в IT. За это время мне удалось пройти путь от разработки на Delphi, разработки веб-сайтов на PHP-фреймворках до backend-разработки на Python. Этот материал является результатом моих усилий по систематизации знаний об SSO (единой системе идентификации).
В моей карьере присутствует период работы в бюджетной организации, подчиняющейся Министерству здравоохранения, где моя задача - разрабатывать информационные системы в формате веб-приложений. Условно системы можно сгруппировать:
- регистры для специфических заболеваний;
- инструменты для сбора статистических данных от медицинских работников;
- системы для обработки отчетности.
https://habr.com/ru/articles/787040/
👉
Что такое Pickling и Unpickling?
В Python pickling и unpickling — это процессы сериализации и десериализации объектов, соответственно, с использованием модуля
pickle.
- Pickling — это процесс преобразования объекта Python (например, словаря, списка, класса и т.д.) в байтовую последовательность (или поток байтов), которая может быть сохранена в файл или передана по сети. Этот процесс позволяет сохранить состояние объекта для дальнейшего использования.
- Unpickling — это обратный процесс, при котором байтовая последовательность преобразуется обратно в объект Python.
Пример использования:
1. Pickling (сериализация):
import pickle
# Создаем объект
data = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# Сохраняем объект в файл
with open('data.pickle', 'wb') as f:
pickle.dump(data, f)
2. Unpickling (десериализация):
import pickle
# Читаем объект из файла
with open('data.pickle', 'rb') as f:
loaded_data = pickle.load(f)
print(loaded_data)
Когда это может быть полезно?
- Сохранение промежуточных данных в файл для повторного использования.
- Передача сложных объектов между разными программами или системами.
- Сохранение состояния приложения.
Однако, нужно быть осторожным с unpickling, так как загрузка непроверенных данных может привести к выполнению вредоносного кода.
👉Модуль functools для манипуляций с функциями
Модуль
functools в Python предоставляет инструменты для работы с функциями, позволяя выполнять различные манипуляции с ними. Вот некоторые из наиболее важных функций и возможностей, которые предоставляет functools:
1. `functools.partial`: Позволяет зафиксировать некоторые аргументы функции и создать новую функцию с предопределенными значениями.
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, 2)
print(double(5)) # Вывод: 10
2. `functools.reduce`: Применяет функцию к паре элементов в последовательности, сокращая ее до одного значения. Обычно используется для аккумуляции значений.
from functools import reduce
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)
print(product) # Вывод: 24
3. `functools.lru_cache`: Кэширует результаты вызовов функции, чтобы ускорить повторные вызовы с теми же аргументами. Полезно для функций с дорогими вычислениями.
from functools import lru_cache
(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10)) # Вывод: 55
4. `functools.wraps`: Декоратор, который сохраняет метаданные оригинальной функции (такие как имя и документация) при создании декоратора.
from functools import wraps
def my_decorator(func):
(func)
def wrapper(*args, **kwargs):
print("Что-то делаем перед вызовом функции")
return func(*args, **kwargs)
return wrapper
def say_hello():
"""Выводит приветствие."""
print("Привет!")
print(say_hello.__name__) # Вывод: say_hello
print(say_hello.__doc__) # Вывод: Выводит приветствие.
5. `functools.total_ordering`: Упрощает реализацию всех методов сравнения для класса, определяя только несколько из них.
from functools import total_ordering
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return (self.x, self.y) == (other.x, other.y)
def __lt__(self, other):
return (self.x, self.y) < (other.x, other.y)
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1 < p2) # Вывод: True
print(p1 <= p2) # Вывод: True
Эти функции и декораторы делают functools мощным инструментом для функционального программирования в Python.
👉Параллелизм в Python с помощью FastAPI
Давайте погрузимся в эту тему с помощью нового крутого фреймворка ASGI, FastAPI. Это concurrent framework, что означает asyncio-friendly. Тианголо, автор, утверждает, что производительность находится на одном уровне с веб-серверами Go и Node.
https://horaceguy.pages.dev/posts/python-concurrency/
👉
