Django. Начало работы. Django. Начало работы. django python

Django. Начало работы.

Open in new window

Django. Начало работы.

Создаем папку проекта.

mkdir news
cd news

Создаем и активируем виртуальное окружение.

virtualenv -p python3 venv
. ./venv/bin/activate

Создаем файл с зависимостями requirements.txt.

Django

Ставим django.

python -m pip install -r requirements.txt

Создаем проект.

django-admin startproject news

Меняем директорию и создаем базу данных.

cd news
./manage.py migrate

Стартуем веб-сервер разработки.

./manage.py startserver

start page

Заходим в админ интерфейс http://localhost:8000/admin.

start page

Добавляем суперпользователя и отвечаем на поставленные вопросы.

./manage.py createsuperuser

После авторизации попадаем на интерфейс администратора.

start page

Изменение стартовой страницы.

Создание приложения.

./manage.py startapp main

Подключение его в проект setting.py.

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

Создаем функцию в main/views.py, обслуживающую маршрут.

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
    return HttpResponse('Hello')

Импортируем эту функцию в urls.py и привяжем к ней стартовую станицу.

from main.views import index

urlpatterns = [
    path('', index),
    path('admin/', admin.site.urls),
]

Попробуем использовать шаблонизатор методом render.

def index(request):
    return render(request,'index.html',{'name': 'Dima'})

Создадим каталог для шаблонов в папке templates в корне проекта и в нем index.html.

<!doctype html>
<html lang="en">
  <head>
  </head>
  <body>
    <h1>Hello, world!</h1>
  </body>
</html>

Для того, чтобы сообщить Django где искать шаблоны, добавим путь к папке templates в settings.py.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        ...
    },
]

Установка bootstrap.

npm install bootstrap

Пример подключения стилей в шаблоне.

<link rel="stylesheet" href="/static/bootstrap/dist/css/bootstrap.min.css" >

Настройки проекта под данное подключение.

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "node_modules"),
]

Передача сложных структур в шаблон.

def index(request):
    userlist = [
        {'name': 'Dima'},
        {'name': 'Vova'},
        {'name': 'Kolya'},
    ]
    cntx = {'name': 'Dima', 'userlist': userlist}

    return render(request,'index.html',cntx)

Шаблонная логика.

<ul>
    {% for user in userlist %}
        {% if user.name == 'Dima' %}
           <li>{{ user.name }}</li>
        {% endif %}
    {% endfor  %}
</ul>

Other topics