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
Перем
Только
Важные особенности:
- Если
- Влияет только на звездочный импорт, явный импорт (import module) игнорирует
Полезен для явного контроля публичного API модуля.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
енная _
_all__ в модуле определяет, какие имена будут экспортированы при импорте через from module im
port *.
__all__ = ['public_func', 'PublicClass']
def public_func():
pass
def _private_func():
pass
class PublicClass:
pass
Только
public_func
и PublicClass
будут доступны при звездочном импорте. Важные особенности:
- Если
__all__
не указан, import *
включает все имена, кроме начинающихся с _
. - Влияет только на звездочный импорт, явный импорт (import module) игнорирует
__all__
. Полезен для явного контроля публичного API модуля.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод
Класс
Итераторы позволяют последовательно получать элементы без загрузки всей коллекции в память.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__iter__()
возвращает сам итератор, а __next__()
возвращает следующий элемент последовательности. При исчерпании элементов вызывается StopIteration
.
class Counter:
def __init__(self, limit):
self.current = 0
self.limit = limit
def __iter__(self):
return self
def __next__(self):
if self.current < self.limit:
self.current += 1
return self.current
raise StopIteration
Класс
Counter
будет выдавать числа от 1 до указанного лимита. Итераторы позволяют последовательно получать элементы без загрузки всей коллекции в память.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Для нахождения общих элементов двух множеств используется оператор
Альтернативный вариант с методом:
Оба способа возвращают новое множество, содержащее только элементы, присутствующие в обоих исходных множествах. Метод
Операция выполняется за O(min(len(a), len(b))) в среднем случае.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
&
или метод intersection()
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
result = set1 & set2 # {2, 3}
Альтернативный вариант с методом:
result = set1.intersection(set2) # {2, 3}
Оба способа возвращают новое множество, содержащее только элементы, присутствующие в обоих исходных множествах. Метод
intersection()
может принимать несколько аргументов для поиска пересечения между несколькими множествами. Операция выполняется за O(min(len(a), len(b))) в среднем случае.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM