Подобрете своя проект Django с тези най-добри практики

Django е здрава, с отворен код, базирана на Python рамка за изграждане на уеб приложения. Популярността му се увеличава през последните няколко години и вече е зряла и широко използвана с голяма общност зад нея.

Сред другите базирани на Python рамки за създаване на уеб приложения (като Flask и Pyramid) Django е най-популярният. Той поддържа както Python версия 2.7, така и Python 3.6. Но към момента на тази статия, Python 2.7 все още е по-достъпната версия по отношение на общност, пакети на трети страни и онлайн документация. Django е сигурен при правилна употреба и осигурява високи размери на гъвкавост. Това е пътят при разработването на приложения от страна на сървъра, използващи Python.

Google Тенденции на 3-те най-популярни рамки за уеб разработка на Python

Като опитен разработчик на Python и Django, ще споделя с вас няколко най-добри практики за настройка на Django, които научих и събрах през годините. Независимо дали имате няколко проекта на Django под колана си или предстои да започнете първия си от нулата, най-добрите практики, описани тук, могат да ви помогнат да създадете по-добри приложения по пътя.

Написах тази статия от много практичен начин на мислене, за да можете веднага да добавите някои инструменти към инструментариума си за разработка. Можете дори да създадете усъвършенстван персонализиран котел на Django за следващите си проекти.

За целите на тази статия предполагам, че използвате Linux Ubuntu машина. В цялата статия някои кодови редове започват със знак $. Те се използват, за да се подчертае, че тази линия трябва да бъде поставена в терминала. Уверете се, че копирате реда без знака $.

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

Докато разработвате базирани на Python приложения, използването на пакети на трети страни е продължаващо нещо. Тези пакети се актуализират често, така че запазването им е организирано. Когато разработвате все повече проекти на една и съща локална машина, е предизвикателство да следите текущата версия на всеки пакет. Невъзможно е да се използват различни версии на един и същ пакет за различни проекти. Освен това актуализирането на пакет на един проект може да наруши функционалността на друг и обратно.

Точно тук виртуалната среда на Python е полезна. За да инсталирате виртуална среда, използвайте:

$ apt-get update
$ apt - вземете инсталирайте python-pip python-dev build-съществено
$ export LC_ALL = "en_US.UTF-8" # може да е необходим в случай, че получите грешка от следващия ред
$ pip install - надстройка на pip
$ pip install - надграждане virtualenv
$ mkdir ~ / .virtualenvs
$ pip инсталирайте virtualenvwrapper
$ export WORKON_HOME = ~ / .virtualenvs
$ nano ~ / .bashrc

Добавете този ред в края на файла:

, /usr/local/bin/virtualenvwrapper.sh

След това изпълнете:

$. .bashrc

След като инсталирате, създайте нова виртуална среда за вашия проект, като напишете:

$ mkvirtualenv име на проект

Докато сте в контекста на вашата виртуална среда, ще забележите, че към терминала е добавен префикс като:

(име на проект) ofir @ playground: ~ $

За да деактивирате (излезете) от виртуалната среда и да се върнете към основния Python контекст на вашата локална машина, използвайте:

$ деактивирайте

За да активирате (стартирате) контекста на виртуалната среда, използвайте:

$ workon име на проект

За да изброите виртуалните среди, съществуващи във вашата локална машина, използвайте:

$ lsvirtualenv

Задържането на вашите проектни зависимости (пакети) във виртуална среда на вашата машина ви позволява да ги държите в изолирана среда. Използвате ги само за един (или няколко) проекта. Когато създавате нова виртуална среда, започвате нова среда без инсталирани пакети в нея. След това можете да използвате, например:

(име на проект) $ pip инсталирате Django

за инсталиране на Django във вашата виртуална среда или:

(име на проект) $ pip инсталиране Django == 1.11

за инсталиране на версия 1.11 на Django, достъпна само от вътрешната среда.

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

За да използвате командата runserver, използвайки вашата виртуална среда, докато в контекста на виртуалната среда, използвайте:

(име на проект) $ cd / път / до / django / проект
(име на проект) $ ./manage.py runserver

По същия начин, когато влизате в Python интерпретатора от виртуалната среда, въведете:

(име на проект) $ python

Той ще има достъп до пакети, които вече сте инсталирали в средата.

Изисквания

Изискванията са списъкът на Python пакети (зависимости), които вашият проект използва, докато стартира, включително версията за всеки пакет. Ето пример за файл файл.txt:

dicttoxml == 1.7.4
Джанго == 1.11.2
h5py == 2.7.0
matplotlib == 2.0.2
numpy == 1.13.0
Възглавница == 4.1.1
psycopg2 == 2.7.1
pyparsing == 2.2.0
питон-dateutil == 2.6.0
pytz == 2017.2
шест == 1.10.0
xmltodict == 0.11.0

Поддържането на актуализиран файл за изисквания.txt е от съществено значение за правилното сътрудничество с други разработчици. Също така е важно да поддържате правилно конфигурираната производствена среда. Този файл, когато е включен във вашето кодово хранилище, ви позволява да актуализирате всички пакети, инсталирани във вашата виртуална среда, като изпълните един ред в терминала. Тогава можете да стартирате и стартирате нови разработчици за нула време.

За да генерирате нови изисквания.txt или да актуализирате съществуващо, използвайте от вашата виртуална среда:

(име на проект) $ pip freeze> изисквания.txt

За ваше удобство не забравяйте да изпълните тази команда в папка, която се проследява от вашето Git хранилище. Това позволява на други случаи на кода да имат достъп и до файла request.txt.

Ако към екипа се присъедини нов разработчик или ако искате да конфигурирате нова среда, използвайки същите пакети, изброени във файла requ.txt, изпълнете в контекста на виртуалната среда:

(име на проект) $ cd / път / до / изисквания / файл
(име на проект) $ pip install -r изисквания.txt

Всички изисквания, изброени във файла, веднага ще бъдат инсталирани във вашата виртуална среда. По-старите версии ще бъдат актуализирани, а по-новите версии ще бъдат понижени, за да отговарят на точния списък с изисквания.txt. Внимавайте обаче - може да има разлики между среди, които все още искате да уважавате.

Горещо препоръчвам да интегрирате тези команди в работния си поток. Актуализирайте файла request.txt, преди да избутате код в хранилището и инсталирайте файл request.txt след изтегляне на код от хранилището.

Кредит: https://www.djangoproject.com/

По-добри настройки.py конфигурация

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

Множество файлове с настройки ви позволяват лесно да дефинирате персонализирани конфигурации за всяка среда поотделно като:

ALLOWED_HOSTS # за производствена среда
DEBUG
DATABASES # за различни разработчици в един и същи екип

Нека ви запозная с разширен подход за конфигуриране на файла settings.py. Тя ви позволява да поддържате различни версии и да използвате тази, която искате във всеки даден момент и във всяка среда.

Първо, отворете пътя към файла на settings.py:

(име на проект) $ cd / път / до / настройки / файл

След това създайте нов модул, наречен настройки (модул е ​​папка, съдържаща файл __init__.py):

(име на проект) Настройки на $ mkdir

Сега преименувайте файла на settings.py в base.py и го поставете в новия модул, който сте създали:

(име на проект) $ mv settings.py settings / base.py

За този пример предполагам, че искате да конфигурирате един файл с настройки за вашата среда за разработка и един за вашата производствена среда. Различни разработчици от един и същи екип могат да използват точно същия подход за определяне на различни файлове с настройки.

За вашата среда за развитие създайте:

(име на проект) $ nano settings / development.py

След това напишете:

от импортиране на база данни *
DEBUG = Вярно

и запишете файла, като натиснете Ctrl + O, Enter и след това Ctrl + X.

За вашата производствена среда създайте:

(име на проект) $ nano settings / production.py

и въведете:

от импортиране на база данни *
DEBUG = Грешно
ALLOWED_HOSTS = ['app.project_name.com',]

Сега, когато искате да добавите или актуализирате настройките на конкретна среда, можете лесно да го направите в собствения му файл с настройки.

Може би се чудите - как Django знае кои файлове с настройки да зареди във всяка среда? За това се използва файлът __init__.py. Когато Django търси settings.py, използван за зареждане, например при стартиране на сървъра, сега намира модул за настройки, а не файл settings.py. Но докато това е модул, съдържащ файл __init__.py, що се отнася до Django, това е точно същото. Django ще зареди файла __init__.py и ще изпълни всичко, което е написано в него.

Затова трябва да определим кой файл с настройки искаме да заредим във файла __init__.py, като изпълним:

(име на проект) $ настройки / __ init__.py

и след това, за производствена среда, например, като напишете:

от внос на продукция *

По този начин Django ще зарежда всички настройки на base.py и production.py всеки път, когато се стартира. Магия?

Сега единствената конфигурация, която е останала, е да запази __init__.py във вашия .gitignore файл, за да не бъде включен в тласъци и дърпания. След като настроите нова среда, не забравяйте да създадете нов __init__.py файл в модула за настройки. След това импортирайте необходимия файл с настройки точно както преди.

В тази статия сме разгледали три най-добри практики за по-добра настройка на вашия проект Django:

  • Работа във виртуална среда
  • Поддържане на актуализацията на файла file.txt и непрекъснато използване в работния процес
  • Настройка на по-добър масив за настройки на проекта

Следвали ли сте тези най-добри практики в последния си проект? Имате ли идеи за споделяне? Коментарите са високо оценени.

Смятате ли, че това е полезно? Ако е така, моля, дайте ми някои хлопки, така че повече хора да видят статията.

Това е част 1 от поредицата за най-добрите практики за развитие на Django. Следвайте ме, за да получите незабавна актуализация, след като се появят следващите части.

Намерете още страхотни съвети за технологичните предприемачи в CodingStartups.