Файл
Установка зависимостей:
Для генерации файла из текущего окружения:
Формат версий:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
requirements.txt
содержит список зависимостей Python-проекта. Каждая строка — имя пакета с опциональным ограничением версии.
# requirements.txt
requests==2.25.1
flask>=1.1.0
pytest
Установка зависимостей:
pip install -r requirements.txt
Для генерации файла из текущего окружения:
pip freeze > requirements.txt
Формат версий:
==
(точно), >=
(минимум), <
(максимум).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Методы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__getitem__()
и __setitem__()
позволяют реализовать доступ к элементам объекта по индексу или ключу, как в списках или словарях.
class CustomContainer:
def __getitem__(self, key):
return self.data[key] # Возвращает значение по ключу/индексу
def __setitem__(self, key, value):
self.data[key] = value # Устанавливает значение по ключу/индексу
__getitem__()
вызывается при обращении obj[key]
, а __setitem__()
— при присваивании obj[key] = value
. Позволяет эмулировать поведение встроенных коллекций.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
asyncio.Event
позволяет синхронизировать корутины через механизм событий. Объект находится в неактивном состоянии (False) до явного
вызова set().
event = asyncio.Event()
async def waiter():
await event.wait() # Ожидает установки флага
print("Event triggered")
async def setter():
await asyncio.sleep(1)
event.set() # Разблокирует все ожидающие корутины
Основные методы:
-
wait()
— приостанавливает выполнение до срабатывания события -
set()/clear()
— активирует/сбрасывает событие -
is_set()
— проверяет состояние флага Используется для координации между задачами, когда одна должна уведомить другие о наступлении условия.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Для вставки данных в таблицу используется SQL-запрос
Ключевые моменты:
- Указание имени таблицы и столбцов (опционально)
- Перечисление значений в порядке столбцов
- Возможность множественной вставки через несколько
Для безопасной вставки из Python рекомендуется использовать параметризованные запросы.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
INSERT INTO
. Синтаксис зависит от структуры таблицы и количества добавляемых значений.
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
Ключевые моменты:
- Указание имени таблицы и столбцов (опционально)
- Перечисление значений в порядке столбцов
- Возможность множественной вставки через несколько
VALUES
INSERT INTO users (name, age)
VALUES ('Alex', 25), ('Anna', 30);
Для безопасной вставки из Python рекомендуется использовать параметризованные запросы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Django использует систему миграций для управления изменениями моделей БД. Основные команды:
Процесс работы:
1. После изменения моделей создается миграция (файл в папке migrations)
2. Миграция применяется к БД командой migrate
3. Можно откатить миграцию через
Для сложных случаев используется ручное редактирование миграционных файлов. Миграции позволяют синхронизировать структуру БД между разными окружениями.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
python manage.py makemigrations # Создает миграции на основе изменений моделей
python manage.py migrate # Применяет миграции к базе данных
Процесс работы:
1. После изменения моделей создается миграция (файл в папке migrations)
2. Миграция применяется к БД командой migrate
3. Можно откатить миграцию через
migrate app_name migration_name
Для сложных случаев используется ручное редактирование миграционных файлов. Миграции позволяют синхронизировать структуру БД между разными окружениями.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Для объединения веток в Git используются две основные стратегии: merge и rebase.
Создает новый коммит слияния, сохраняя историю изменений.
Перемещает коммиты feature-branch на вершину main, создавая линейную историю.
Конфликты разрешаются вручную в обоих случаях. Merge безопаснее для публичных веток, rebase — для локальной очистки истории.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
git checkout main # Переключение на целевую ветку
git merge feature-branch # Слияние feature-branch в main
Создает новый коммит слияния, сохраняя историю изменений.
git checkout feature-branch
git rebase main # Перебазирование на основную ветку
Перемещает коммиты feature-branch на вершину main, создавая линейную историю.
Конфликты разрешаются вручную в обоих случаях. Merge безопаснее для публичных веток, rebase — для локальной очистки истории.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
cProfile
— встроенный модуль для профилирования кода. Показывает время выполнения функций и количество вызовов.
import cProfile
def test_func():
# Код для профилирования
pass
cProfile.run('test_func()') # Запуск профилирования
Основные параметры вывода:
-
ncalls
— количество вызовов -
tottime
— общее время в функции -
cumtime
— время с учетом вложенных вызовов Для сохранения результатов в файл:
cProfile.run('test_func()', 'profile_stats')
Анализ результатов через
pstats
:
import pstats
p = pstats.Stats('profile_stats')
p.sort_stats('cumtime').print_stats(10) # Топ-10 медленных функций
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Для защиты веб-приложения от утечки данных необходимо реализовать многоуровневую безопасность:
Шифрование трафика через TLS/SSL.
Использование параметризованных запросов вместо форматирования строк.
Хранение только хешей паролей с солью.
Дополнительные меры: валидация ввода, ограничение прав доступа, регулярное обновление зависимостей.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
# HTTPS обязателен
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
Шифрование трафика через TLS/SSL.
# Защита от инъекций
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
Использование параметризованных запросов вместо форматирования строк.
# Хеширование паролей
from django.contrib.auth.hashers import make_password
hashed_pw = make_password('password123')
Хранение только хешей паролей с солью.
Дополнительные меры: валидация ввода, ограничение прав доступа, регулярное обновление зависимостей.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерн Bridge разделяет абстракцию и реализацию, позволяя им изменяться независимо.
Абстракция делегирует работу объекту реализации. Позволяет изменять реализацию без модификации клиентского кода. Подходит для поддержки разных платформ или API.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
class Abstraction:
def __init__(self, implementation):
self._implementation = implementation
def operation(self):
return f"Abstraction + {self._implementation.operation_impl()}"
class Implementation:
def operation_impl(self):
raise NotImplementedError
class ConcreteImplementationA(Implementation):
def operation_impl(self):
return "ConcreteImplementationA"
Абстракция делегирует работу объекту реализации. Позволяет изменять реализацию без модификации клиентского кода. Подходит для поддержки разных платформ или API.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Для удаления пакета через pip используется команда
После выполнения команды pip запросит подтверждение удаления. Для автоматического подтверждения можно добавить флаг
Удаление затрагивает только указанный пакет, не затрагивая его зависимости. Для просмотра списка установленных пакетов перед удалением можно использовать
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
uninstall
с указанием имени пакета:
pip uninstall package_name
После выполнения команды pip запросит подтверждение удаления. Для автоматического подтверждения можно добавить флаг
-y
:
pip uninstall package_name -y
Удаление затрагивает только указанный пакет, не затрагивая его зависимости. Для просмотра списка установленных пакетов перед удалением можно использовать
pip list
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
В
Ключевые особенности:
- Задачи выполняются конкурентно в одном потоке
- Позволяют отслеживать состояние через
- Можно отменять через
Используются для параллельного запуска корутин без блокировки основного потока.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
asyncio
Task — это объект, который оборачивает корутину и планирует её выполнение в цикле событий.
import asyncio
async def my_coroutine():
await asyncio.sleep(1)
return "Done"
task = asyncio.create_task(my_coroutine()) # Создание задачи
Ключевые особенности:
- Задачи выполняются конкурентно в одном потоке
- Позволяют отслеживать состояние через
done()
, result()
- Можно отменять через
cancel()
Используются для параллельного запуска корутин без блокировки основного потока.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
git stash
временно сохраняет незакоммиченные изменения, позволяя переключиться между ветками без коммита.
git stash save "Work in progress" # Сохраняет изменения в stash
Основные команды:
-
git stash list
— показывает список сохранённых stash -
git stash apply
— восстанавливает последний stash (без удаления) -
git stash pop
— применяет и удаляет последний stash
git stash drop stash@{1} # Удаляет конкретный stash
Используется для временного сохранения правок перед сменой контекста работы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Модуль
Получение версии пакета:
Возвращает текущую версию установленного пакета.
Чтение файлов из пакета:
Загружает содержимое файла
Проверка зависимостей:
Возвращает список зависимостей для указанного пакета.
Модуль полезен для управления ресурсами и зависимостями в проектах.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pkg_resources
из setuptools
предоставляет инструменты для работы с ресурсами и зависимостями пакетов. Основные функции включают управление версиями, доступ к файлам внутри пакетов и проверку зависимостей. Получение версии пакета:
import pkg_resources
version = pkg_resources.get_distribution("requests").version
Возвращает текущую версию установленного пакета.
Чтение файлов из пакета:
python
data = pkg_resources.resource_string("my_package", "data/file.txt")
Загружает содержимое файла
file.txt
из пакета my_package
. Проверка зависимостей:
python
dependencies = pkg_resources.require("requests")
Возвращает список зависимостей для указанного пакета.
Модуль полезен для управления ресурсами и зависимостями в проектах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Модуль
Сериализация объекта в файл:
Записывает объект
Десериализация из файла:
Восстанавливает объект из файла.
Сериализация в строку байт:
Преобразует объект в байты и обратно.
Используется для сохранения состояния объектов или передачи между процессами.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pickle
позволяет сериализовать и десериализовать объекты в байтовый поток для сохранения или передачи. Сериализация объекта в файл:
python
import pickle
data = {"key": "value"}
with open("data.pkl", "wb") as file:
pickle.dump(data, file)
Записывает объект
data
в файл в бинарном режиме. Десериализация из файла:
python
with open("data.pkl", "rb") as file:
loaded_data = pickle.load(file)
Восстанавливает объект из файла.
Сериализация в строку байт:
python
bytes_data = pickle.dumps(data)
restored_data = pickle.loads(bytes_data)
Преобразует объект в байты и обратно.
Используется для сохранения состояния объектов или передачи между процессами.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM