Простое приложение на Django.Instablog,Часть 1

19 Сен 2016 , 236

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

Так я надеюсь ,что у вас установлен python3.6 и virtualenv. В качестве базы данных будем использовать Postgresql

Сперва создаем виртуальное окружение для нашего проекта. В домашней папке создаем папку env и переходим в эту папку. Далее с помощью virtualenv создаем виртуальное окружение instablog. Далее с помощью source активируем наше виртуальное окружение и установим последнюю версию Django


  mkdir env
  cd env
  virtualenv  --no-site-packages -p python3.6 instablog
  source instablog/bin/activate
  pip install django

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


   django-admin startproject instablog
   cd instablog

После выполнения startproject у нас создалась следующая директория файлов.


instablog
├── instablog
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

В документации подробно описано , что из себя представляет эта структура, но тут я отмечу, что:

manage.py : Скрипт , который позволяет взаимодействовать с проектом Django. С помощью этого скрипта мы будем запускать различные команды, которые запускают наш Django проект, создает и выполняет миграции и т.д.

Внутренний каталог instablog/ - это пакет Python вашего проекта. Эта папка создается по умолчанию и совпадает с названием нашего проекта. Мы можем при необходимости указать другое название для этой папки , но мы оставим как есть

instablog/__init__.py: - Пустой файл , который указывает Python, что текущий каталог является пакетом Python. Проще говоря , пакет это каталог с нашими python файлами .

instablog/settings.py : - Настройки/конфигурация проекта. В этом файле у нас содержатся стандартные настройки Django проекта , такие как , настройки для подключения базы данных, перечисляются используемые в нашем проекте приложения, контекстные процессоры которые загружаются по умолчанию и много других настроек, которые мы при необходимости будем добавлять в этот файл. Пока запомните, тут содержатся все настройки нашего сайта

instablog/urls.py: Конфигурация URL-ов для вашего проекта Django. Тут будут располагаться наши правила для url адресов, которые будут вызывать соответствующие вьюхи

instablog/wsgi.py: Точка входа вашего проекта для WSGI-совместимых веб-серверов. Пока нам этот файл не нужен. Он необходим, когда мы будем выкладывать наш проект на продашн.

Это простое описание файлов из официальной документации Django , дополненный моими комментариями. Если ничего не поняли, то не заморачивайтесь , просто продолжаем.

Вы можете запустить наш проект , с помощью команды


   python manage.py runserver

Вы можете увидеть сообщение красным цветом, которое говорит нам, что нужно применить миграции приложений нашего проекта , которые у нас включены по умолчанию. Но пока не нужно их применять.Просто перейдите по адресу 127.0.0.1:8000/ и в окне браузера вы увидете Так почему же мы не применили наши миграции? Просто мы вначале должны понять миграции каких приложений мы должны применить. Переходим в файл instablog/settings.py и находим секцию INSTALLED_APPS . Это список (надеюсь, вы знаете, что такое список(list) в python )django приложений , которые у нас включены по умолчанию

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Мы можем отключить ненужные приложения , если нам необходимо, но я просто перечислю вкратце: 'django.contrib.admin' - это встроенная в коробку Djаngo административная панель, которая позволит нам управлять 'django.contrib.auth', - 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',

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

comments powered by Disqus

Подписка

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

Рубрики

Теги