💡 Используйте имена столбцов в ORDER BY
Перед прочтением рекомендуем ознакомиться с первой частью.
▍Часть 2
Примеры кода:
▍Не нужно так делать:
Перед прочтением рекомендуем ознакомиться с первой частью.
▍Часть 2
Примеры кода:
▍Не нужно так делать:
SELECT col, col2, col3▍А лучше так:
FROM table
ORDER BY 2, 1
SELECT col, col2, col3#советы #coding #sql
FROM table
ORDER BY col2, col
💡 Сохраняйте SQL запросы
Если Вы пишите какой-то разовый запрос и в дальнейшем он может, и никогда не будет использоваться, все равно сохраните этот запрос в любом виде, обычно в файлах .sql, так как по опыту могу сказать, что он может пригодиться и для других задач или помочь их решить намного быстрей. Если Вы не сохраните, то Вам придется продумывать всю логику, алгоритм заново что, конечно же, влияет на скорость выполнения задания.
#советы #coding #sql
Если Вы пишите какой-то разовый запрос и в дальнейшем он может, и никогда не будет использоваться, все равно сохраните этот запрос в любом виде, обычно в файлах .sql, так как по опыту могу сказать, что он может пригодиться и для других задач или помочь их решить намного быстрей. Если Вы не сохраните, то Вам придется продумывать всю логику, алгоритм заново что, конечно же, влияет на скорость выполнения задания.
#советы #coding #sql
💡 Не создавайте много курсоров
Не создавайте много курсоров. Так как курсор — это достаточно ресурсоемкая операция для сервера, поэтому если есть возможность обойтись без него, то лучше его не использовать. Хотя есть такие задачи, когда курсор это единственное возможное решение, поэтому он тоже, в некоторых случаях, очень полезен.
#советы #coding #sql
Не создавайте много курсоров. Так как курсор — это достаточно ресурсоемкая операция для сервера, поэтому если есть возможность обойтись без него, то лучше его не использовать. Хотя есть такие задачи, когда курсор это единственное возможное решение, поэтому он тоже, в некоторых случаях, очень полезен.
#советы #coding #sql
💡 Проверяйте и тестируйте условия при UPDATE и DELETE
Совет на собственную проверку. Иногда, когда требуется что-то массово обновить (UPDATE), всегда тестируйте запрос на тестовой базе, иначе, например, одно не верное условие может быть практически необратимо. Поэтому всегда под рукой должна быть тестовая база.
#советы #coding #sql
Совет на собственную проверку. Иногда, когда требуется что-то массово обновить (UPDATE), всегда тестируйте запрос на тестовой базе, иначе, например, одно не верное условие может быть практически необратимо. Поэтому всегда под рукой должна быть тестовая база.
#советы #coding #sql
💡Подборка советов по SQL
▍Полезная подборка с последними советами по SQL.
▫️ Перечисляйте поля
▫️ Не пишите сложные многоуровневые запросы
▫️ Не используйте в WHERE функции
▫️ Перечисляйте столбцы во время INSERT
▫️ Используйте значение по умолчанию, избегайте NULL
▫️ Используйте имена столбцов в ORDER BY: Часть 1 | Часть 2
▫️ Избавьтесь от ненужных переменных
▫️ Сохраняйте SQL запросы
▫️ Не создавайте много курсоров
▫️ Проверяйте и тестируйте условия при UPDATE и DELETE
▫️ Используйте понятные названия
По какому языку вы хотите следующую подборку? Пишите в комментариях 👇
#советы #coding #sql
▍Полезная подборка с последними советами по SQL.
▫️ Перечисляйте поля
▫️ Не пишите сложные многоуровневые запросы
▫️ Не используйте в WHERE функции
▫️ Перечисляйте столбцы во время INSERT
▫️ Используйте значение по умолчанию, избегайте NULL
▫️ Используйте имена столбцов в ORDER BY: Часть 1 | Часть 2
▫️ Избавьтесь от ненужных переменных
▫️ Сохраняйте SQL запросы
▫️ Не создавайте много курсоров
▫️ Проверяйте и тестируйте условия при UPDATE и DELETE
▫️ Используйте понятные названия
По какому языку вы хотите следующую подборку? Пишите в комментариях 👇
#советы #coding #sql
💡 Virtualenv
Virtualenv + Python = палочка-выручалочка. Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты. Также это может оказаться удобным, когда на сервере необходимо держать разные версии Django или python.
Daily Coding #советы #coding #python #django #web
Virtualenv + Python = палочка-выручалочка. Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты. Также это может оказаться удобным, когда на сервере необходимо держать разные версии Django или python.
Daily Coding #советы #coding #python #django #web
💡 Используйте Memcache
Когда низкая производительность может стать проблемой, вы скорее всего захотите установить какую-либо систему кеширования. Django предлагает множество вариантов для кеширования, но лучшим из них на сегодняшний день является memcached. Установить и использовать memcached весьма просто, если вы используете модуль cmemcache. После того как модуль будет установлен, вам нужно внести одну строку в конфигурацию, чтобы ваши страницы начали выдаваться еще быстрее.
Daily Coding #советы #coding #python #django #web
Когда низкая производительность может стать проблемой, вы скорее всего захотите установить какую-либо систему кеширования. Django предлагает множество вариантов для кеширования, но лучшим из них на сегодняшний день является memcached. Установить и использовать memcached весьма просто, если вы используете модуль cmemcache. После того как модуль будет установлен, вам нужно внести одну строку в конфигурацию, чтобы ваши страницы начали выдаваться еще быстрее.
Daily Coding #советы #coding #python #django #web
💡 Автозагрузка кастомных тегов, которые можно использовать во всех шаблонах
Аргументом к
Например, это так же может быть модуль расположенный в корневом каталоге проекта (например: '
Daily Coding #советы #coding #python #django #web
from django import templateЕсли добавить это в модуль который загружается по умолчанию (
template.add_to_builtins('project.app.templatetags.custom_tag_module')
settings.py,urls.py,every app models.py
), у вас будут доступны все теги и фильтры из вашего кастомного модуля в любом шаблоне, без использования {% load custom_tag_module %}
.Аргументом к
template.add_to_builtins()
может быть путь к любому модулю; ваш кастомный модуль не обязательно должен быть привязан к какому то определенному приложению.Например, это так же может быть модуль расположенный в корневом каталоге проекта (например: '
project.custom_tag_module
').Daily Coding #советы #coding #python #django #web
💡 Стоит ли изучать Django?
Если вы начинающий программист, и задаетесь вопросом: должен ли я изучить Django? Короткий ответ — да.
Если вам потребуется реализовать вашу идею с минимальными затратами и быстро — Django подходящий инструмент. Он бесплатен, свободен и позволяет сделать разработку web-проектов еще проще. Django лучшее решение для разработки прототипов приложений, поскольку он включает все необходимое для создания необходимого функционала прямо из коробки. Например, админка может быть подключена одной строчкой кода.
Если вы разработчик уже знакомый с Python, и находитесь в поисках фреймворка для бэкенда вашего приложения или сайта, Django также будет хорошим выбором. Фреймворк содержит в себе библиотеки и инструменты позволяющие проводить различные операции и эффективно обрабатывать большое количество запросов пользователей в реальном времени.
Поэтому процесс разработки становится быстрым, так как вам не нужно создавать каждый компонент с нуля.
Daily Coding #советы #coding #python #django #web
Если вы начинающий программист, и задаетесь вопросом: должен ли я изучить Django? Короткий ответ — да.
Если вам потребуется реализовать вашу идею с минимальными затратами и быстро — Django подходящий инструмент. Он бесплатен, свободен и позволяет сделать разработку web-проектов еще проще. Django лучшее решение для разработки прототипов приложений, поскольку он включает все необходимое для создания необходимого функционала прямо из коробки. Например, админка может быть подключена одной строчкой кода.
Если вы разработчик уже знакомый с Python, и находитесь в поисках фреймворка для бэкенда вашего приложения или сайта, Django также будет хорошим выбором. Фреймворк содержит в себе библиотеки и инструменты позволяющие проводить различные операции и эффективно обрабатывать большое количество запросов пользователей в реальном времени.
Поэтому процесс разработки становится быстрым, так как вам не нужно создавать каждый компонент с нуля.
Daily Coding #советы #coding #python #django #web
💡 Команды для Python по работе с файлами и файловой системой
Начинаем новую серию советов: команды для Python по работе с файлами и файловой системой, которые обязательно нужно знать.
▍Показать текущий каталог
Самая простая и вместе с тем одна из самых важных команд для Python-разработчика. Она нужна потому, что чаще всего разработчики имеют дело с относительными путями. Но в некоторых случаях важно знать, где мы находимся.
Относительный путь хорош тем, что работает для всех пользователей, с любыми системами, количеством дисков и так далее.
Так вот, для того чтобы показать текущий каталог, нужна встроенная в Python OS-библиотека:
Daily Coding #советы #coding #python
Начинаем новую серию советов: команды для Python по работе с файлами и файловой системой, которые обязательно нужно знать.
▍Показать текущий каталог
Самая простая и вместе с тем одна из самых важных команд для Python-разработчика. Она нужна потому, что чаще всего разработчики имеют дело с относительными путями. Но в некоторых случаях важно знать, где мы находимся.
Относительный путь хорош тем, что работает для всех пользователей, с любыми системами, количеством дисков и так далее.
Так вот, для того чтобы показать текущий каталог, нужна встроенная в Python OS-библиотека:
import osЕе легко запомнить, так что лучше выучить один раз, чем постоянно гуглить. Это здорово экономит время.
os.getcwd()
Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой
▍Проверяем, существует файл или каталог
Прежде чем задействовать команду по созданию файла или каталога, стоит убедиться, что аналогичных элементов нет. Это поможет избежать ряда ошибок при работе приложения, включая перезапись существующих элементов с данными.
Функция os.path.exists () принимает аргумент строкового типа, который может быть либо именем каталога, либо файлом.
В случае с Google Colab при каждом запуске создается папка sample_data. Давайте проверим, существует ли такой каталог. Для этого подойдет следующий код:
Daily Coding #советы #coding #python
▍Проверяем, существует файл или каталог
Прежде чем задействовать команду по созданию файла или каталога, стоит убедиться, что аналогичных элементов нет. Это поможет избежать ряда ошибок при работе приложения, включая перезапись существующих элементов с данными.
Функция os.path.exists () принимает аргумент строкового типа, который может быть либо именем каталога, либо файлом.
В случае с Google Colab при каждом запуске создается папка sample_data. Давайте проверим, существует ли такой каталог. Для этого подойдет следующий код:
os.path.exists('sample_data')Эта же команда подходит и для работы с файлами:
os.path.exists('sample_data/README.md')Если папки или файла нет, команда возвращает false.
Daily Coding #советы #coding #python
❤1
💡 Команды для Python по работе с файлами и файловой системой
▍Объединение компонентов пути
В предыдущем примере был намеренно использован слеш "/" для разделителя компонентов пути. В принципе это нормально, но не рекомендуется. Если вы хотите, чтобы ваше приложение было кроссплатформенным, такой вариант не подходит. Так, некоторые старые версии ОС Windows распознают только слеш "\" в качестве разделителя.
Но не переживайте, Python прекрасно решает эту проблему благодаря функции
▍Объединение компонентов пути
В предыдущем примере был намеренно использован слеш "/" для разделителя компонентов пути. В принципе это нормально, но не рекомендуется. Если вы хотите, чтобы ваше приложение было кроссплатформенным, такой вариант не подходит. Так, некоторые старые версии ОС Windows распознают только слеш "\" в качестве разделителя.
Но не переживайте, Python прекрасно решает эту проблему благодаря функции
os.path.join()
. Давайте перепишем вариант из примера в предыдущем совете, используя эту функцию:os.path.exists(os.path.join('sample_data', 'README.md'))Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой
▍Создание директории
Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():
▍Создание директории
Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():
os.mkdir('test_dir')Рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:
if not os.path.exists('test_dir'):Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:
os.mkdir('test_dir')
os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой
▍Показываем содержимое директории
Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.
Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:
▍Показываем содержимое директории
Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.
Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:
os.listdir('sample_data')В некоторых случаях нужно что-то более продвинутое — например, поиск всех CSV-файлов в каталоге «sample_data». В этом случае самый простой способ — использовать встроенную библиотеку glob:
from glob import globlist(glob(os.path.join('sample_data', '*.csv')))Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой
▍Перемещение файлов | Часть 1
Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека
Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:
Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.
Чтобы все это работало, нужно явно указать имя файла в месте назначения. В следующей части рассмотрим код, который это позволяет сделать, а также другие функции.
Daily Coding #советы #coding #python
▍Перемещение файлов | Часть 1
Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека
shutil
.Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:
import shutilfor file in list(glob(os.path.join('sample_data', '*.csv'))):Кстати, есть два способа выполнить задуманное. Например, мы можем использовать библиотеку OS, если не хочется импортировать дополнительные библиотеки. Как
shutil.move(file, 'test_dir')
os.rename
, так и os.replace
подходят для решения задачи.Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.
Чтобы все это работало, нужно явно указать имя файла в месте назначения. В следующей части рассмотрим код, который это позволяет сделать, а также другие функции.
Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой
▍Перемещение файлов | Часть 2
Из прошлой части: Чтобы все это работало, нужно явно указать имя файла в месте назначения.
Ниже — код, который это позволяет сделать:
Другая функция,
Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от
Поэтому лучше использовать
Daily Coding #советы #coding #python
▍Перемещение файлов | Часть 2
Из прошлой части: Чтобы все это работало, нужно явно указать имя файла в месте назначения.
Ниже — код, который это позволяет сделать:
for file in list(glob(os.path.join('test_dir', '*.csv'))):Здесь функция
os.rename(
file,
os.path.join(
'sample_data',
os.path.basename(file)
))
os.path.basename()
предназначена для извлечения имени файла из пути с любым количеством компонентов.Другая функция,
os.replace()
, делает то же самое. Но разница в том, что os.replace()
не зависит от платформы, тогда как os.rename()
будет работать только в системе Unix / Linux.Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от
shutil
.Поэтому лучше использовать
shutil.move()
для перемещения файлов.Daily Coding #советы #coding #python
👍1
💡 Команды для Python по работе с файлами и файловой системой
▍Копирование файлов
Аналогичным образом
Если нужно скопировать файл
▍Копирование файлов
Аналогичным образом
shutil
подходит и для копирования файлов по уже упомянутым причинам.Если нужно скопировать файл
README.md
из папки «sample_data» в папку «test_dir», поможет функция shutil.copy()
:shutil.copy(Daily Coding #советы #coding #python
os.path.join('sample_data', 'README.md'),
os.path.join('test_dir')
)
💡 Команды для Python по работе с файлами и файловой системой
▍Удаление файлов и папок
Разберёмся с процедурой удаления файлов и папок. Нам здесь снова поможет библиотека OS.
Когда нужно удалить файл, нужно воспользоваться командой os.remove():
Daily Coding #советы #coding #python
▍Удаление файлов и папок
Разберёмся с процедурой удаления файлов и папок. Нам здесь снова поможет библиотека OS.
Когда нужно удалить файл, нужно воспользоваться командой os.remove():
os.remove(os.path.join('test_dir', 'README(1).md'))Если требуется удалить каталог, на помощь приходит os.rmdir():
os.rmdir(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))Продолжение следует...
Daily Coding #советы #coding #python