Рубрики
Без рубрики

Улучшите свой проект Django с помощью этих лучших практик

Автор оригинала: FreeCodeCapm Team.

ОФИР ЧАКОН

Django – это надежный, с открытым исходным кодом, на основе Python, основанная на Python на основе создания веб-приложений. Его популярность увеличилась за последние пару лет, и она уже зрелая и широко используется с большим сообществом за ним.

Среди других на основе Python основанных на создании веб-приложений (например, колба и пирамида), Django, безусловно, самая популярная. Он поддерживает как Python версии 2.7 и Python 3.6. Но во время этой статьи Python 2.7 по-прежнему более доступная версия с точки зрения сообщества, сторонних пакетов и онлайн-документации. Django безопасен при правильном использовании и обеспечивает высокие размеры гибкости. Это путь к работе при разработке серверных приложений с помощью Python.

Как опытный разработчик Python и Django, я поделюсь с вами некоторыми лучшими практиками для настройки Django, которую я узнал и собрал за эти годы. Если у вас есть несколько проектов Django под вашим ремнем, или вы только что собираетесь начать свой первый с нуля, лучшие практики, описанные здесь, могут помочь вам создать лучшие приложения по дороге.

Я написал эту статью от очень практичного мышления, чтобы вы могли добавить некоторые инструменты на ваш инструмент разработки немедленно. Вы даже можете создать передовую пользовательскую кокетную таблицу Django для ваших следующих проектов.

С целью этой статьи я предполагаю, что вы используете машину Linux Ubuntu. На протяжении всей статьи некоторые строки кода начинаются с $ знак. Они используются для подчеркивания того, что эта линия должна быть вставлена в терминал. Обязательно скопируйте линию без $ знак.

Виртуальная среда

При разработке приложений на основе Python используя сторонние пакеты – постоянная вещь. Эти пакеты часто обновляются, поэтому удерживайте их организованные необходимы. При разработке все больше и больше проектов на том же местном компьютере это сложно отслеживать текущую версию каждого пакета. Невозможно использовать разные версии того же пакета для разных проектов. Более того, обновление пакета на одном проекте может сломать функциональность на другой и наоборот.

Вот где виртуальная среда Python приходит удобно. Чтобы установить использование виртуальной среды:

$ apt-get update
$ apt-get install python-pip python-dev build-essential

$ export LC_ALL="en_US.UTF-8" # might be necessary in case you get an error from the next line

$ pip install --upgrade pip
$ pip install --upgrade virtualenv
$ mkdir ~/.virtualenvs
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/.virtualenvs
$ nano ~/.bashrc

Добавьте эту строку до конца файла:

. /usr/local/bin/virtualenvwrapper.sh

Затем выполните:

$ . .bashrc

После установки создайте новую виртуальную среду для вашего проекта, набрав:

$ mkvirtualenv project_name

Пока вы находитесь в контексте вашей виртуальной среды, вы заметите, что префикс добавляется к терминалу, например:

(project_name) ofir@playground:~$

Для того, чтобы деактивировать (выйти) виртуальную среду и вернуться к основному контексту Python в вашем локальном компьютере, используйте:

$ deactivate

Для того, чтобы активировать (запуск) контекст виртуальной среды, используйте:

$ workon project_name

Чтобы перечислить виртуальные среды, существующие в вашей местной машине, используйте:

$ lsvirtualenv

Удерживая ваши проектные зависимости (пакеты) в виртуальной среде на вашей машине, позволяет вам держать их в изолированной среде. Вы используете их только для одного (или нескольких) проектов. При создании новой виртуальной среды вы начинаете свежую среду без установки пакетов. Тогда вы можете использовать, например:

(project_name) $ pip install Django

Для установки Django в вашу виртуальную среду или:

(project_name) $ pip install Django==1.11

Для установки версии 1.11 Django доступно только изнутри окружающей среды.

Ни ваш главный интерпретатор Python, ни другие виртуальные среды на вашей машине не смогут получить доступ к новой упаковке Django, который вы только что установили.

Чтобы использовать команду runserver, используя вашу виртуальную среду, в то время как в контексте виртуальной среды используйте:

(project_name) $ cd /path/to/django/project
(project_name) $ ./manage.py runserver

Точно так же при входе в переводчик Python в виртуальной среде введите:

(project_name) $ python

Он будет иметь доступ к пакетам, которые вы уже установлены внутри окружающей среды.

Требования

Требования являются список пакетов Python (зависимости) вашего проекта, используя во время его выполнения, включая версию для каждого пакета. Вот пример для требования .txt файл:

dicttoxml==1.7.4
Django==1.11.2
h5py==2.7.0
matplotlib==2.0.2
numpy==1.13.0
Pillow==4.1.1
psycopg2==2.7.1
pyparsing==2.2.0
python-dateutil==2.6.0
pytz==2017.2
six==1.10.0
xmltodict==0.11.0

Держать свой требования .txt На сегодняшний день файл необходим для правильной совместной работы с другими разработчиками. Также важно соблюдать вашу производственную среду правильно настроенную. Этот файл, при включении в репозиторий кода, позволяет обновлять все пакеты, установленные в вашей виртуальной среде, выполнив одну строку в терминале. Тогда вы можете получить новые разработчики и запустить в кратчайшие сроки.

Для того, чтобы генерировать новый требования .txt Или обновить существующий, используйте из виртуальной среды:

(project_name) $ pip freeze > requirements.txt

Для вашего удобства убедитесь, что выполните эту команду в папке, которая отслеживается вашей репозиторией GIT. Это позволяет другим экземплярам кода иметь доступ к требования .txt файл тоже.

Если новый разработчик присоединяется к команде, или если вы хотите настроить новую среду, используя те же пакеты, перечисленные в требования .txt Файл, выполнить в контексте виртуальной среды:

(project_name) $ cd /path/to/requirements/file
(project_name) $ pip install -r requirements.txt

Все требования, перечисленные в файле, будут немедленно установлены в вашу виртуальную среду. Старые версии будут обновлены, и новые версии будут понижены, чтобы соответствовать точным списке требования .txt Отказ Будьте осторожны, хотя могут быть различия между средами, которые вы все еще хотите уважать.

Я настоятельно рекомендую интегрировать эти команды на ваш рабочий поток. Обновите файл требований.txt, прежде чем нажать код в репозиторий и установите файл .txt.txt после вытягивания кода из репозитория.

Лучшие настройки

Django выходит из коробки с очень базовым, но полезным settings.py файл. Это определяет основные и наиболее полезные конфигурации для вашего проекта. settings.py Файл очень прост. Но иногда, как разработчик, работающий над командой или при настройке производственной среды, вам нужно более одного базового settings.py файл.

Несколько файлов настроек позволяют легко определять индивидуальные конфигурации для каждой среды отдельно, как:

ALLOWED_HOSTS # for production environment
DEBUG
DATABASES # for different developers on the same team

Позвольте мне представить вам расширенный подход для настройки вашего settings.py файл. Это позволяет поддерживать разные версии и использовать тот, который вы хотите в любой момент времени и в любой среде.

Во-первых, перейдите к вашему settings.py Путь файла:

(project_name) $ cd /path/to/settings/file

Затем создайте новый модуль «Настройки» (модуль является папкой, содержащей файл __init__.py ):

(project_name) $ mkdir settings

Теперь переименуйте свой settings.py Файл на base.py и поместите его внутри нового модуля, который вы создали:

(project_name) $ mv settings.py settings/base.py

Для этого я предполагаю, что вы хотите настроить один файл настроек для вашей среды разработки и один для вашей производственной среды. Различные разработчики в той же команде могут использовать тот же самый подход для определения различных файлов настроек.

Для вашей среды разработки создаются:

(project_name) $ nano settings/development.py

Затем введите:

from .base import *

DEBUG = True

и сохранить файл, ударив Ctrl + O , Войти, а потом Ctrl + X Отказ

Для вашей производственной среды создаются:

(project_name) $ nano settings/production.py

и тип:

from .base import *

DEBUG = False
ALLOWED_HOSTS = ['app.project_name.com', ]

Теперь, когда вы хотите добавить или обновить настройки определенной среды, вы можете легко сделать это в собственном файле настроек.

Вам может быть интересно – как Django знает, какие настройки файл нагрузки на каждую среду? Вот что __init__.py файл используется для. Когда Джанго ищет settings.py Например, он использовался для загрузки при запуске сервера, он теперь находит модуль настроек, а не settings.py файл. Но до тех пор, пока это модуль, содержащий __init__.py Файл, насколько давно обеспокоен Джанго, это то же самое. Django загрузит __init__.py Файл и выполнить все, что написано в нем.

Следовательно, нам нужно определить, какой файл настроек мы хотим загрузить внутри __init__.py Файл, выполнив:

(project_name) $ settings/__init__.py

А потом, для производственной среды, например, набрав:

from .production import *

Таким образом, Django загрузит все настройки base.py и production.py каждый раз, когда он запускается. Магия?

Теперь единственная левая конфигурация – сохранить __init__.py В вашем .gitignore Файл, чтобы он не будет включен в толкающие и тянуть. Как только вы настроите новую среду, не забудьте создать новый __init__.py Файл внутри модуля настроек. Затем импортируйте файл настроек, необходимый точно так же, как и раньше.

В этой статье мы охватываем три лучших практики для лучшего создания вашего проекта Django:

  • Работа в виртуальной среде
  • Держать требования .txt Файл в актуальном состоянии и непрерывно используя его в вашем рабочем потоке
  • Настройка лучшего массива настроек проекта

Вы следовали за этими лучшими практиками в вашем последнем проекте? У вас есть какие-либо идеи, чтобы поделиться? Комментарии высоко ценится.

Вы нашли это полезным? Если это так, пожалуйста, дайте мне несколько хлопьев, чтобы все больше людей видят статью.

Это часть 1 в серии о лучших практиках развития Джанго. Следуйте за мной, чтобы получить немедленное обновление после доступности следующих частей.

Найти более великолепные советы для технологических предпринимателей в Кодированиеstartups Отказ