💡 Используйте значение по умолчанию, избегайте NULL
Данный совет вытекает из предыдущего. Старайтесь при создании таблицы задавать значения по умолчанию, чтобы избавиться от NULL, так как если Вы этого не будете делать, то могут возникать такие значения как NULL, а следует помнить, что NULL — это не значение, а это состояние ячейки, т.е. отсутствие значения. Чем так плохо это значение, а тем, что при написании запросов, Вам придется помнить, что у Вас могут встречаться такие значения и соответственно принимать их во внимание. Так как если Вы забудете или попросту не знаете, что в какой-то таблице есть значения NULL, то в дальнейшем Вы можете выводить неправильные данные, а это не есть хорошо.
#советы #coding #sql
Данный совет вытекает из предыдущего. Старайтесь при создании таблицы задавать значения по умолчанию, чтобы избавиться от NULL, так как если Вы этого не будете делать, то могут возникать такие значения как NULL, а следует помнить, что NULL — это не значение, а это состояние ячейки, т.е. отсутствие значения. Чем так плохо это значение, а тем, что при написании запросов, Вам придется помнить, что у Вас могут встречаться такие значения и соответственно принимать их во внимание. Так как если Вы забудете или попросту не знаете, что в какой-то таблице есть значения NULL, то в дальнейшем Вы можете выводить неправильные данные, а это не есть хорошо.
#советы #coding #sql
💡 Используйте имена столбцов в ORDER BY
▍Часть 1
При сортировке (ORDER BY) лучше использовать имена столбцов, а не их позиции (номера), так как могут возникнуть проблемы. Например, Вы использовали сортировку по их номеру и отдали запрос разработчику приложения, затем через некоторое время возникла необходимость изменить данный запрос путем добавления или удаления некоторых полей, а про сортировку забыли и снова отдали запрос разработчику. И теперь при выводе данных будет использоваться неправильная сортировка, а со стороны пользователя вообще может возникнуть мнение, что выводятся неправильные данные, он об этом скажет Вам, а Вы будете не понимать, ведь все же работало, что же не так. А все потому, что никакой ошибки не возникнет, чтобы ее можно было отследить, а все банально и просто, Вы использовали сортировку по номеру столбца.
В следующей части рассмотрим примеры кода.
#советы #coding #sql
▍Часть 1
При сортировке (ORDER BY) лучше использовать имена столбцов, а не их позиции (номера), так как могут возникнуть проблемы. Например, Вы использовали сортировку по их номеру и отдали запрос разработчику приложения, затем через некоторое время возникла необходимость изменить данный запрос путем добавления или удаления некоторых полей, а про сортировку забыли и снова отдали запрос разработчику. И теперь при выводе данных будет использоваться неправильная сортировка, а со стороны пользователя вообще может возникнуть мнение, что выводятся неправильные данные, он об этом скажет Вам, а Вы будете не понимать, ведь все же работало, что же не так. А все потому, что никакой ошибки не возникнет, чтобы ее можно было отследить, а все банально и просто, Вы использовали сортировку по номеру столбца.
В следующей части рассмотрим примеры кода.
#советы #coding #sql
💡 Используйте имена столбцов в 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
💡 Используйте имена столбцов в 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