Django

Страницата е създадена на:20 декември 2018 и редактирана на:25 декември 2018

Django е рамка за създаване на приложения за Интернет, основана на Python.

Освен интерпретатор на езика Python на компютъра, на който ще се инсталира Django са необходими: pip - инсталатора на пакети за Python; venv или virtualenv - инструменти за създаване на работни среди за приложения, базирани на Python.

С команда:

python3 -m venv ~/.virtualenvs/djangodev
се създава работна среда за Django в директория ~/.virtualenvs/djangodev.

С команда:

source ~/.virtualenvs/djangodev/bin/activate
същата се активира.

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

python -m pip install django

Дали е успешно инсталирането се проверява с:

python -m django --version
При успешно преминало инсталиране се показва номера на инсталираната версия.

Създаване на нов проект в текущата директория се извършва с команда:

django-admin startproject имеНаДиректория
В текущата директория се създава поддиректория с посоченото в командата име. Влизането в нея и подаването на команда:
python manage.py runserver
стартира интернет сървър и може да прегледате през браузър новия проект на адрес: http://127.0.0.1:8000. Показва се страница по подразбиране, съдържаща хипрвръзки към някои основни материали за Django. Портът на сървъра от 8000, може да промените, например, на 8080 с използване за стартиране на сървъра на команда: python manage.py runserver 8080

При стертиране на сървара е възможно да се покаже съобщение "You have ... unapplied migration(s)...". В такъв слячай трябва да се спре сървъра (Ctrl+C) и да се изпълнят командите:

python manage.py makemigrations
python manage.py migrate
след което сървърът може да се стартира отново.

Дори така стартираният най-прост проект има панел за управление на адрес: http://127.0.0.1:8000/admin. Потребителско име и парола за главен администратор се задава преди стартиране на сървъра с команда:

python manage.py createsuperuser

Контролният панел по подразбиране позволява въвеждане на групи потребители и потребители.

Команда:

python manage.py startapp имеНаПриложение
създава поддиректория с посоченото име, предназначена за ново приложение. Името на приложението трябва се добави в масива INSTALLED_APPS във файл: settings.py на проекта.

За визуализиране на страници в Django заявените URL-и се свързват с изгледи. Валидните в проекта URL-и се дефинират като елементи на масив urlpatterns във файл urls.py от директорията на проекта. В този масив се добавят URL-ите, дефинирани в приложение чрез добавяне на ред:

path('', include('имеНаПриложение.urls'))
В директорията на приложението трябва да има файл с име urls.py, в който валидните за приложението URL-и се свързват с дафинирани в приложението изгледи. Примерно съдържание на този файл:
from django.urls import path
from . import views
urlpatterns = [
    path('', views.имеНаИзглед, name='имеНаИзглед'),
]
където посоченото имеНаИзглед трябва да е изглед, дефиниран във файл views.py в директорията на приложението. Изгледите са функции, които генерират и връщат предвиденият отговор на сървъра към клиента, съответстващ на изискания от клиента URL. Например:
from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world.")

За генериране на отговора може да се използват шаблони, които са html файлове от директория templates на приложението. За по-добра организация, в тази директория се изгражда структура от поддиректории. Шаблоните съдържат html код и променливи, тагове, филтри или коментари. (Вижте Templates | Django documentation | Django)

Най-прост пример за изглед, който връща генериран чрез шаблон отговор:

from django.shortcuts import render
def index(request):
    return render(request, 'myApp/index.html', {})

Ако новото приложение ще използва база данни (по подразбиране - SQLight), то една от първите стъпки е да се дефинира моделът на данните. Това се прави във файл имеНаПриложение/models.py (Вежте: Models | Django documentation | Django) След данифиране на всеки необходим клас обекти и неговите свойства, за създаване на таблиците за съхраняване на данните в базата данни се подава двойка команди:

python manage.py makemigrations имеНаПриложение
python manage.py migrate имеНаПриложение
(Вижте: Migrations | Django documentation | Django).

Данните за обекти от дефинирания клас ще може да се администрират през панела за управление, ако във файл имеНаПриложение/admin.py се добават следните редове:

from .models import ИмеНаКласОбекти
admin.site.register(ИмеНаКласОбекти)

 

Направено с MyCMS. Copyright CC BY-ND 4.0.