Если вы решили использовать импортирование пакетов, существует еще одно условие, которое необходимо будет соблюдать: каждый каталог в пути, указанном в инструкции импортирования пакета, должен содержать файл с именем __init__.py, в противном случае операция импорта пакета будет терпеть неудачу. То есть в примере выше каталоги dir1 и dir2 должны содержать файл с именем __init__.py каталог-контейнер dir0 может не содержать такой файл, потому что сам он не указан в инструкции импортирования пакета. Точнее говоря, для такой структуры каталогов:
dir0dir1dir2mod.pyи инструкции импортирования, имеющей следующий вид:
import dir1.dir2.modприменяются следующие правила:
•
dir1 и
dir2 должны содержать файл
__init__.py.
•
dir0, каталог-контейнер, может не содержать файл
__init__.py – этот файл
будет проигнорирован, если он присутствует.
•
dir0, но не
dir0dir1, должен присутствовать в пути поиска модулей (то есть он должен быть домашним каталогом или присутствовать в переменной окружения
PYTHONPATH и так далее).
Таким образом, структура каталогов в этом примере должна иметь следующий вид (здесь отступы указывают на вложенность каталогов):
dir0 # Каталог-контейнер в пути поиска модулей
dir1
__init__.py
dir2
__init__.py
mod.py
Файлы __init__.py могут содержать программный код на языке Python, как любые другие файлы модулей. Отчасти они являются объявлениями для интерпретатора и могут вообще ничего не содержать. Эти файлы, будучи объявлениями, предотвращают неумышленное сокрытие в каталогах с совпадающими именами истинно требуемых модулей, если они отображаются позже в списке путей поиска модулей. Без этого защитного механизма интерпретатор мог бы выбирать каталоги, которые не имеют никакого отношения к вашему программному коду, только лишь потому, что в пути поиска они появляются ранее.
В общем случае файл __init__.py предназначен для выполнения действий по инициализации пакета, создания пространства имен для каталога и реализации поведения инструкций from * (то есть from … import *), когда они используются для импортирования каталогов:
Инициализация пакета
Когда интерпретатор Python импортрирует каталог в первый раз он автоматически запускает программный код файла __init__.py этого каталога. По этой причине обычно в эти файлы помещается программный код, выполняющий действия по инициализации, необходимые для файлов в пакете.
Например, этот файл инициализации в пакете может использоваться для создания файлов с данными, открытия соединения с базой данных и так далее. Обычно файлы __init__.py не предназначены для непосредственного выполнения – они запускаются автоматически, когда выполняется первое обращение к пакету.
Инициализация пространства имен модуля
При импортировании пакетов пути к каталогам в вашем сценарии после завершения операции импортирования превращаются в настоящие иерархии вложенных объектов. Например, в предыдущем примере после завершения операции импортирования можно будет использовать выражение dir1.dir2, которое возвращает объект модуля, чье пространство имен содержит все имена, определяемые файлом __init__.py из каталога dir2. Такие файлы создают пространства имен для объектов модулей, соответствующих каталогам, в которых отсутствуют настоящие файлы модулей.
Поведение инструкции from *
В качестве дополнительной особенности, в файлах __init__.py можно использовать списки __all__, чтобы определить, что будет импортироваться из каталог
Всем привет, решил попробовать сделать блог на Django и рассказать «пошаговость» Вам. Первое и самое главное — без чего невозможно будет работать — это установить Python и Django. О совместимостях версий писать не буду так как все есть в гугле)
Итак начнем с установки Python-a. Так как у меня виндовс и к тому же 8.1 будет пробовать делать все под нее. Для того чтоб скачать свежую версию я воспользовался ссылкой https://www.python.org/downloads/ и на данный момент там есть версия 3.5.1, вот ее и возьму.
Во время установки я отметил галочкой пункт Add Python 3.5 to PATH, чтобы cmd его тоже распозновала.
Потом нажав Customize installtion ждем окончания установки.
Дальше нам надо установить Django, для этого переходим по ссылке
https://www.djangoproject.com/download/ и в правой колонке есть ссылка для скачивания последнего релиза — ее и кликаем. Вы скачаете архив с которого нужно распаковать папку «Django-1.9.4» а потом в ее корне запустить команду
python setup.py install .
Для того чтоб установить джанго я воспользовался ГИТовой консолью запустив ее с правами администратора и написал приведенную выше команду. Запуск консоли с правами администратора — обязателен !!!
Теперь проверим работоспособность нашего установленного Джанго. Для этого я выполнил в папке выше следующие команды…
в консоли запускаем python, а далее пишем следующие команды
>>> import django
>>> django.VERSION
(1, 9, 4, 'final', 0)
Если у вас отобразилась версия, поздравляю — вы установили все как надо.
Вот впринципе на этом данная статья может быть закончена, далее мы рассмотрим процесс настройки с БД. Хочу попробовать на postgreSQL, но а там как получится. А вообще выбор между MySQL & PostgreSQL.
Помогите с выбором БД, пишите в комментах какой отдать предпочтения.
Так же я в гит буду выкладывать все шаги разработки или же лучше выложить вконце один готовый вариант ?
Автор: Няшный Человек
Дата публикации: 2016-03-06T10:41:00.000+02:00