20.02.2021 21:19 Программирование

Создаем свое первое приложение на Django

Django — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation. Django считается лучшим веб-фреймворком, написанным на Python. Этот инструмент удобно использовать для разработки сайтов, работающих с базами данных.

Вокруг Django быстро сформировалось активное сообщество. Фреймворк стал стремительно развивается усилиями волонтёров. Значительную роль в успехе Django сыграли несколько известных сайтов, которые использовали этот фреймворк. В их число входят Pinterest, Dropbox, Spotify, сайт The Washington Post. В настоящее время сообщество Django включает более 11 тыс. разработчиков из 166 стран мира.

Давайте приступим к созданию первого приложения на Django.

Шаг 1. Установка Django

Первым делом нам надо установить сам фреймворк, для этого нам надо запустить следующую команду:

$ pip install django

Если вы правильно установили Django, то после запуска django-admin --version вы увидите текущую версию фреймворка.

Шаг 2. Создание проекта Django

Перед тем как начать писать код, нам надо создать проект над котором мы будем работать:

$ django-admin startproject myproject

После того как наш создание проекта будет завершена, мы получим следующую структуру проекта:

  • django_example/__ init__.py — пустой файл, который говорит Python, что данная директория должна восприниматься в качестве пакета.
  • django_example/settings.py содержит конфигурацию нашего проекта.
  • django_example/urls.py — здесь объявляются URL.
  • django_example/wsgi.py — с помощью него приложение может работать с веб-сервером по протоколу WSGI.
  • manage.py позволяет взаимодействовать с проектом.

Шаг3. Создаем проект наше приложение helloworld

Итак, приступим к созданию нашего приложения. Это делается следующим образом:

$ python manage.py startapp helloworld

Это создаст каталог helloworld, который выглядит следующим образом:

helloworld/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

В этой структуре каталогов будет храниться приложение helloworld.

Далее переходим в папку приложения и создаем файл urls.py (если его нет) и добавим в него следующие строки:

from django.conf.urls import url

from . import views

app_name = 'helloworld'

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

Откройте файл helloworld/views.py и сохраните в нем приведенный ниже код:

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello World!")

Откройте файл django_example/urls.py и добавьте в urlpatterns строку:

url(r'^helloworld/', include('helloworld.urls'))

после этого файл должен выглядеть так:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^riddles/', include('helloworld.urls')),
    url(r'^admin/', admin.site.urls),
]

Функция include() позволяет вам обращаться к другим URLconfs. Каждый раз, когда Django находит include() какую-либо часть URL-адреса, которая соответствует этому моменту, он отправляет оставшуюся строку во включенный URLconf для дальнейшей обработки. Идея include() состоит в том, чтобы облегчить соединение и немедленное выполнение URL-адресов. Вы всегда должны использовать, include() когда включаете другие шаблоны URL.

Шаг4. Запускаем наше приложение

$ python manage.py runserver

Мы запустили сервер разработки Django, легкий веб-сервер, написанный исключительно на Python. Мы связали его с Django, чтобы вы могли быстро разрабатывать вещи, не настраивая рабочий сервер, например Apache, пока вы не будете готовы к работе.

Сейчас хорошее время помнить о том, что вы не должны использовать этот сервер в какой-либо производственной среде. Он предназначен только для использования во время разработки (наша задача - создавать веб-фреймворки, а не веб-серверы).

Теперь, если мы перейдем на урл приложения http://127.0.0.1:8000/helloworld/, мы увидим «Hello, World!».

Читать еще по теме