Python для начинающих django: Руководство по Django

Содержание

Руководство по Django

Последнее обновление: 07.03.2018

Содержание руководства по созданию веб-приложений на языке Python с помощью фреймворка Django.

  1. Глава 1. Введение в Django

    1. Что такое Django

    2. Установка и настройка Django

    3. Создание первого проекта

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

  2. Глава 2. Представления и маршрутизация

    1. Обработка запроса

    2. Определение маршрутов и функции path и re_path

    3. Параметры представлений

    4. Параметры строки запроса

    5. Переадресация и отправка статусных кодов

  3. Глава 3. Шаблоны

    1. Создание и использование шаблонов

    2. Передача данных в шаблоны

    3. Статические файлы

    4. TemplateView

    5. Конфигурация шаблонов

    6. Расширение шаблонов

    7. Встроенные теги

  4. Глава 4. Формы Django

    1. Определение форм

    2. Типы полей формы

    3. Настройка формы и ее полей

    4. Валидация данных

    5. Детальная настройка полей формы

    6. Стилизация полей форм

  5. Глава 5. Модели

    1. Создание моделей и миграции базы данных

    2. Типы полей моделей

    3. CRUD. Операции с моделями

    4. Создание и получение объектов модели

    5. Редактирование и удаление объектов модели

    6. Отношение один ко многим (One to Many)

    7. Отношение многие ко многим (Many to Many)

    8. Отношение один к одному (One to one)

Урок 1 / Установка Django / Блог на Django 2.0 ~ PythonRu

Если Django уже установлен, можете пропустить этот раздел и переходить к части «Создание первого проекта». Django — это пакет Python, поэтому он может быть установлен в любой среде Python. Вот как установить фреймворк для локальной разработки.
Для Django 2.0 обязательны Python 3.4 или старше. Дальше будет использоваться Python 3.6.5. Для Linux или macOS, то Python, вероятно уже установлен. Если Windows — то инструкция по установке здесь.

Проверить установлен ли Python на компьютере можно, введя python в командной строке. Если в ответ отобразится что-то подобное, то Python установлен:

Python 3.7.3 (default, Mar 27 2019, 17:13:21) 
[MSC v.1915 64 bit (AMD64)] :: Anaconda custom (64-bit) on win32

Type "help", "copyright", "credits" or "license" for more information.
>>>          

Если он не установлен или установлена версия Python 3.4 или младше, то нужно перейти в раздел “Скачать и установить Python”, найти руководство под свою OS и следовать инструкциям.

Для Python 3 не нужна база данных. Эта версия Python поставляется со встроенной базой данных SQLite. Это облегченная база данных, которая подходит для разработки на Django. Если же нужно будет разворачивать приложение в производственной среде, то понадобится более продвинутое решение: PostgreSQL, MySQL или Oracle. Больше узнать о том, как заставить базу данных работать с Django, можно по этой ссылке: https://docs.djangoproject.com/en/2.0/topics/install/#database-installation.

Создание виртуальной среды Python

Рекомендуется использовать virtualenv для создания виртуальной среды Python так, чтобы можно было спокойно использовать разные версии пакетов для разных проектов. Это практичнее, чем устанавливать пакеты в Python напрямую в систему. Еще одно преимущество virtualenv — для установки пакетов Python не нужны права администратора. Запустите следующую команду в командной строке для установки virtualenv:

pip install virtualenv

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

virtualenv my_env

Это создаст папку my_env вместе со средой Python. Любые библиотеки Python, установленные с активированной виртуальной средой Python, будут установлены в папку my_env/lib/python3.7/site-packages.

Если в системе была предустановлена Python 2.X, а вы установили Python 3.X, то нужно указать virtualenv, чтобы он работал с последней версией.

Можно указать путь, по которому установлен Python 3 и использовать его для создания виртуальной среды с помощью следующих команд:

$ which python3 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 
$ virtualenv my_env -p
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3

Используйте следующую команду для активации виртуальной среды:

source my_env/bin/activate

Командная строка будет включать название активной виртуальной среды в скобках:

(my_env) username:~$

Отключить виртуальную среду можно с помощью команды deactivate.

Больше о virtualenv можно узнать по ссылке https://virtualenv.pypa.io/en/latest/.

Поверх virtualenv можно также использовать virtualenvwrapper. Этот инструмент предоставляет оболочки, с помощью которых проще создавать и управлять виртуальной средой. Загрузить его можно здесь: https://virtualenvwrapper.readthedocs.io/en/latest/.

Установка Django с помощью pip

Система управления пакетами pip — рекомендуемый способ установки Django. В Python 3.6+ она предустановлена, а инструкции для установки можно найти по ссылке https://pythonru.com/baza-znanij/ustanovka-pip-dlja-python-i-bazovye-komandy.

Используйте следующую команду в оболочке, чтобы установить Django с помощью pip:

pip install Django==2.0.5

Django установится в папку Python под названием site-packages/ активной виртуальной среды.

Теперь нужно проверить, успешно ли прошла установка. Для этого в командной строке необходимо ввести python, импортировать Django и проверить его версию следующим образом:

>>> import django 
>>> django.get_version() 
'2.0.5'

Если вывод такой, как вверху, значит Django был успешно установлен на компьютере:

Django можно установить и другими способами. Полный гайд по установке можно найти здесь: https://docs.djangoproject.com/en/2.0/topics/install/.

Django уроки — курс создания сайта на Django с нуля

Python это очень мощный язык, функциональность которого увеличивается при использовании дополнительных библиотек. В видео курсе мы с вами изучим популярную библиотеку Django и построим небольшой сайт на основе библиотеки Django.

Информация про Джанго

Язык Python универсальный и на его основе можно писать приложения для различных целей. При помощи дополнительных библиотек можно создавать как приложения, так и веб сайты. К примеру, для создания игр на Python понадобиться библиотека Pygame, а для создания сайтов библиотека Django. 

В этом видеокурсе мы изучим библиотеку Django, так как она является одной из самых популярных библиотек для Python, а также она позволяет создавать мощные современные сайты. На сегодняшний день существует большое количество популярных сайтов, которые созданы именно при помощи этой технологии, среди них:

  1. Google — крупнейшая поисковая система;
  2. YouTube — крупнейший видеохостинг;
  3. Instagram — популярное приложения для обмена фото и видео;
  4. Pinterest — крупнейший социальный интернет-сервис;
  5. The Washington Times — популярная всемирная газета.

Это только небольшой список тех компаний, которые используют эту технологию в своих продуктах. 

Как видите, перспективы изучения Django очень большие, так как сейчас все больше и больше крупных компаний ищут специалистов со знаниями именно этой библиотеки.

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

План курса

В видео курсе мы изучим все основные положения библиотеки Django, а также создадим полноценный веб сайт. Для реализации стилей на сайте мы будем использовать библиотеку Bootstrap (уроки по ней можно посмотреть здесь), а для связи с базой данных мы будем использовать встроенную ORM систему, которая позволяет создавать таблицы в базе данных на основе классов в Python.

Самый полный видеокурс по Django от установки до проекта

Язык Python можно также использовать для написания сайтов. Вот занимательный видеокурс по Django на примере создания интернет-магазина.

Вас интересует фреймворк Django? Тогда вы по адресу. Оставим библиотеки, модули и трюки позади. Разберем Django по косточкам 😉

Эта лекция является вступительной в видеокурс по Django, в ней будет рассматриваться установка необходимого софта для работы с Python и Django. Автор показывает: процесс установки Python, настройки всех переменных, установки Django через pip, а также установку IDE PyCharm и его тестовый запуск.

Чтобы начать разрабатывать свой первый проект, нужно хорошенько разобраться со структурой IDE. После структуры в ролике пойдет речь об очень важной теме: как фреймворк Django взаимодействует с пользователем, о стилях и переменных.

Данный урок будет посвящен созданию блоков функционала, разнесенного по разным файлам. Такой подход облегчит разработку и скорость работы проекта. Второй крупной темой видео будет работа с базой, инициализация и «общение» с таблицами.

В этой лекции автор расскажет о кастомизации админки и отображении записей. Попутно разъясняется синтаксис языка Python, процесс создания элементов страницы, изменения имени модели, а также проводится траблшутинг.

В этом ролике создается веб-станица на примере готового шаблона. Для понимания всего происходящего пригодятся знания основ верстки, а также сильно облегчит жизнь опыт работы с элементами Bootstrap.

На прошлых уроках была создана страница на Bootstrap, а теперь пришло время заняться логикой. Будет создана структура БД, и автор уделит значительное внимание связям между таблицами и моделями Django.

Данный урок научит создавать логику для просчета общей стоимости товара в заказе, исходя из количества, а также просчет, исходя из стоимости товаров при помощи метода save и сигнала post_save.

Автор выбирает шаблон для будущего магазина, подробно разбирает каждый из них на предмет плюсов и минусов и рассматривает основные элементы UI.

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

https://www.youtube.com/watch?&v=PF1hh5ePcKI

Допиливание и переделка кода происходит на протяжении всего видеокурса, а в этом ролике происходит создание и добавление страницы товара. Автор показывает, как по id из url можно работать с товаром.

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

Этот урок продолжает видеокурс по Django framework, в котором будет происходить работа с Ajax по сохранению информации о товаре в БД. Будет создана модель для корзины и доработано взаимодействие фронтенда и бекенда.

Context processor – важная тема, поэтому сейчас вы научитесь создавать свой процессор для переменных, доступных со всех страниц. В лекции это показано на примере товаров в корзине.

Это последнее видео из серии про Ajax и jQuery, в котором вы узнаете, как происходит удаление товаров из корзины.

В этом видео автор показывает, как можно создать фронтенд формы для чекаута выбранного товара. Также будут рассмотрены формы Django и то, как в них можно динамически подгружать информацию.

На прошлом уроке был создан фронтенд, а здесь создается бекенд страницы чекаута для интернет-магазина. Вы научитесь пересохранять данные из модели «Товары» в корзине в модель «Товары» в заказе.

Этот видеокурс по Django посвящен запуску проекта на сервере в интернете. В качестве ОС была выбрана Ubuntu. Весь процесс подробно описан от регистрации до запуска.

Заключительная лекция курса и последняя часть по работе с удаленным сервером с рабочим проектом. Автор рассказывает, как запустить Django на сервере при помощи связки nginx + gunicorn.

А с какими трудностями столкнулись вы, работая с Django framework?

Блог на Django 3 — Создание с нуля для чайников

В данном уроке мы займемся созданием блога на Django, которое позволит пользователям создавать, редактировать и удалять записи. На домашней странице сайта дается список всех записей блога, для каждой отдельной записи также будет предусмотрена детализированная страница. Помимо всего прочего, изучим как применяются CSS стили и рассмотрим принципы работы Django со статическими файлами, такие как css, js, jpg, png.

Содержание статьи

Начальная настройка блога на Django

Настройка нового Django проекта состоит из следующих этапов:

  • создание новой директории для кода на рабочем столе под названием blog;
  • установка Django в новом виртуальном окружении;
  • создание нового проекта под названием blog_project;
  • создание нового приложения blog;
  • осуществление миграции для установки базы данных;
  • обновление файла настроек settings.py.

> Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Открыть форум

> Чат и Паблик Программистов


Присоединяйтесь к нашему чату в Телеграм и подпишитесь на наш паблик в ВК.


Не забудьте поставить точку . в конце команды для создания нового проекта blog_project.

$ cd ~/Desktop
$ mkdir blog
$ cd blog
$ pipenv install django==3.0.*
$ pipenv shell
(blog) $ django-admin startproject blog_project .
(blog) $ python manage.py startapp blog
(blog) $ python manage.py migrate
(blog) $ python manage.py runserver



$ cd ~/Desktop

$ mkdir blog

$ cd blog

$ pipenv install django==3.0.*

$ pipenv shell

(blog) $ django-admin startproject blog_project .

(blog) $ python manage.py startapp blog

(blog) $ python manage.py migrate

(blog) $ python manage.py runserver

Сообщим Django о новом приложении. Для этого откроем в текстовом редакторе файл settings.py и добавим в конце переменной INSTALLED_APPS наше приложение:

# blog_project/settings.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘blog.apps.BlogConfig’, # Добавляем наше приложение
]



# blog_project/settings.py

INSTALLED_APPS = [

    ‘django.contrib.admin’,

    ‘django.contrib.auth’,

    ‘django.contrib.contenttypes’,

    ‘django.contrib.sessions’,

    ‘django.contrib.messages’,

    ‘django.contrib.staticfiles’,

    ‘blog.apps.BlogConfig’, # Добавляем наше приложение

]

При переходе по адресу http://127.0.0.1:8000/ в браузере откроется следующая страница.

django app

Приветственная страница Django

Итак, установка завершена! Далее займемся созданием модели базы данных для записей блога.

Создание модели Post для работы с записями блога

Каковы характеристики типичного блога? Не будем усложнять задачу, остановимся на том, что у каждой записи должен быть:

  • Заголовок;
  • Автор;
  • Содержимое.

Все это можно превратить в модель базы данных, наполните файл blog/models.py следующим содержимым:

# blog/models.py
from django.db import models


class Post(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(
‘auth.User’,
on_delete=models.CASCADE,
)
body = models.TextField()

def __str__(self):
return self.title



# blog/models.py

from django.db import models

 

 

class Post(models.Model):

    title = models.CharField(max_length=200)

    author = models.ForeignKey(

        ‘auth.User’,

        on_delete=models.CASCADE,

    )

    body = models.TextField()

 

    def __str__(self):

        return self.title

В верхней части импортируется класс models, а затем модель Post наследует класс models.Model. Используя функциональные особенности наследника, мы автоматически получаем доступ ко всем данным внутри родительского класса django.db.models.Models. Теперь можно добавлять дополнительные поля и все необходимые нам методы.

Для заголовка title ставим ограничение на 200 символов, а для содержимого статьи body используем тип TextField, что автоматические расширяется, подстраиваясь под длину текста пользователя. В Django доступно множество типов полей, с полным списком которых можете ознакомиться здесь.

Для поля автора author используем ForeignKey, что допускает взаимодействия по схеме многие-к-одному. Это значит, что любой пользователь может быть автором множества записей, но не иначе. Отталкиваемся от встроенной в Django модели User, предусмотренной для аутентификации. Для взаимоотношений многие-к-одному вроде ForeignKey требуется уточнить опцию on_delete чтобы знать как себя вести при удалении записи из одной таблицы которая связана с данными из других таблиц.

Теперь, когда новая модель базы данных создана, нужно создать новую запись миграции и перенести изменение в нашу базу данных. Остановите веб-сервер через комбинацию CTRL+C. Данный двухэтапный процесс можно выполнить используя данные команды:

(blog) $ python manage.py makemigrations blog
(blog) $ python manage.py migrate blog



(blog) $ python manage.py makemigrations blog

(blog) $ python manage.py migrate blog

База данных настроена! Что дальше?

Панель администратора для блога на Django

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

(blog) $ python manage.py createsuperuser
Username (leave blank to use ‘wsv’): wsv
Email:
Password:
Password (again):
Superuser created successfully.



(blog) $ python manage.py createsuperuser

Username (leave blank to use ‘wsv’): wsv

Email:

Password:

Password (again):

Superuser created successfully.

Теперь вновь запустим веб-сервер при помощи команды python manage.py runserver и откроем админку, перейдя по адресу http://127.0.0.1:8000/admin/. При входе укажите данные вашего аккаунта суперпользователя.

И где же новая модель Post для работы с записями блога?

blog

Домашняя страница панели администратора

Мы забыли обновить файл blog/admin.py. Давайте сделаем это сейчас.

# blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)



# blog/admin.py

from django.contrib import admin

from .models import Post

 

admin.site.register(Post)

Обновления в админке можно увидеть после перезагрузки страницы.

blog

Домашняя страница панели администратора

Добавим две записи, чтобы появились образцы для дальнейшей работы с блогом. Для создания нового поста нажмите кнопку + Add рядом с Posts. Не забудьте указать автора каждой записи, так как по умолчанию все поля в модели являются обязательными. Если попытаться опубликовать что-то без указания автора, выйдет ошибка. При желании поменять данное условие, можно добавить специальные опции для полей рассматриваемой модели, сделав поле необязательным или же заполнить его значением по умолчанию.

blog

Создание первой записи в блоге

blog

Создание второй записи в блоге

blog

Список записей блога в админке

С созданием модели базы данных все работы завершены. Теперь нужно создать все необходимые представления (Views), настройка URL маршрутов и создание файлов шаблона для отображения информации нашего блога на Django.

Настройка URL маршрутов для блога на Django

Для отображения записей блога на главной странице, настроим конфигурацию файла blog_project/urls.py, а также файла  blog/urls.py.

В командной строке выключаем запущенный веб-сервер через комбинацию CTRL+C и создаем новый файл urls.py внутри приложения blog:

(blog) $ touch blog/urls.py



(blog) $ touch blog/urls.py

Теперь заполняем его содержимое используя ниже предоставленный код.

# blog/urls.py
from django.urls import path

from .views import BlogListView

urlpatterns = [
path(», BlogListView.as_view(), name=’home’),
]



# blog/urls.py

from django.urls import path

 

from .views import BlogListView

 

urlpatterns = [

    path(», BlogListView.as_view(), name=’home’),

]

В верхней части импортируем будущие представления. Пустые одинарные кавычки '' говорят Django принимать все значения и создать именованный URL home, к которому можно будет позже отсылаться из представлений (views). Хотя сейчас создавать именованный URL не обязательно, будет лучше, если вы выработаете у себя данную привычку. С ростом количества URL маршрутов это поможет сохранять проект более организованным и упорядоченным.

Мы также должны обновить файл blog_project/urls.py, чтобы в дальнейшем все запросы направлялись напрямую к приложению blog.

# blog_project/urls.py
from django.contrib import admin
from django.urls import path, include # новое изменение

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(», include(‘blog.urls’)), # новое изменение
]



# blog_project/urls.py

from django.contrib import admin

from django.urls import path, include # новое изменение

 

urlpatterns = [

    path(‘admin/’, admin.site.urls),

    path(», include(‘blog.urls’)), # новое изменение

]

Мы добавили функцию include() на второй строке и URL паттерн, используя пустую строку регулярного выражения '', указывая, что URL запросы должны быть перенаправлены к обработчику URL маршрутов от приложения blog для последующих инструкций.

Представления — BlogListView для отображения записей блога

Сейчас мы будем использовать классовые представления, однако при создании приложения для блога также можно применить функционально-ориентированный подход. При желании более подробно изучить второй вариант можете ознакомиться с уроками от Django Girls Tutorial. Отличная вещь!

В файле views.py добавьте указанный ниже код, который нужен для отображения содержимого из модели Post при использовании ListView от Django.

# blog/views.py
from django.views.generic import ListView

from .models import Post


class BlogListView(ListView):
model = Post
template_name = ‘home.html’



# blog/views.py

from django.views.generic import ListView

 

from .models import Post

 

 

class BlogListView(ListView):

    model = Post

    template_name = ‘home.html’

Первые две строчки импортируют ListView и модель нашей базы данных Post. Мы наследуем класс ListView и добавляем отсылку к модели и указываем на HTML файл шаблона. Это позволяет сэкономить на коде, избавляя от необходимости написания дополнительного кода с нуля.

Создание шаблона для блога на Django

Настройка URL маршрутов и представления готовы, остались только разобраться с шаблонами. Здесь можно унаследовать свойства других шаблонов, чтобы сохранить текущий код чистым. Начнем с файла base.html и файла home.html, который наследует структуру от него. Затем создадим шаблоны для создания и редактирования записей блога, который также могут наследовать основную структуру от base.html.

Создадим новую директорию templates и два HTML файла шаблонов внутри нее.

(blog) $ mkdir templates
(blog) $ touch templates/base.html
(blog) $ touch templates/home.html



(blog) $ mkdir templates

(blog) $ touch templates/base.html

(blog) $ touch templates/home.html

Теперь обновляем файл settings.py, для того чтобы Django понимал в какие еще директории искать наши файлы шаблона.

# blog_project/settings.py
TEMPLATES = [
{

‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)], # новое

},
]



# blog_project/settings.py

TEMPLATES = [

    {

        …

        ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)], # новое

        …

    },

]

Затем обновляем шаблон base.html следующим образом.

<!— templates/base.html —>
<html>
<head>
<title>Django blog</title>
</head>
<body>
<header>
<h2><a href=»{% url ‘home’ %}»>Django blog</a></h2>
</header>
<div>
{% block content %}
{% endblock content %}
</div>
</body>
</html>



<!— templates/base.html —>

<html>

  <head>

    <title>Django blog</title>

  </head>

  <body>

    <header>

      <h2><a href=»{% url ‘home’ %}»>Django blog</a></h2>

    </header>

    <div>

      {% block content %}

      {% endblock content %}

    </div>

  </body>

</html>

Обратите внимание, что место между {% block content %} и {% endblock content %} будет заполнено содержимым из других файлов, например home.html.

<!— templates/home.html —>
{% extends ‘base.html’ %}

{% block content %}
{% for post in object_list %}
<div>
<h3><a href=»»>{{ post.title }}</a></h3>
<p>{{ post.body }}</p>
</div>
{% endfor %}
{% endblock content %}



<!— templates/home.html —>

{% extends ‘base.html’ %}

 

{% block content %}

  {% for post in object_list %}

    <div>

      <h3><a href=»»>{{ post.title }}</a></h3>

      <p>{{ post.body }}</p>

    </div>

  {% endfor %}

{% endblock content %}

В верхней части файла можно заметить, что данный шаблон расширяет базовый base.html и затем заполняет блок content данными. Используя специальный язык шаблонов мы применяем цикл for для отображения всех записей. Обратите внимание, что переменная object_list досталось нам от класса ListView и содержит все объекты нашего представления.

Если опять запустить веб-сервер через python manage.py runserver и затем перезагрузить страницу http://127.0.0.1:8000/, можно убедиться, что все работает.

blog

Домашняя страница блога с двумя записями

Выглядит, конечно, не очень. Давайте исправим ситуацию при помощи добавления CSS стилей.

Подключение статических файлов в Django

Сейчас нам потребуется использовать CSS стили, что по сути являются статическими файлами, так как в отличие от динамического содержимого базы данных, они не меняются. К счастью, в Django можно напрямую добавить статические файлы вроде CSS, JavaScript или изображения.

При создании сайтов для улучшения производительности файлы обычно хранят на CDN сервере. CDN сервер предоставляет возможность пользователю получить статические файлы быстрее в зависимости от его страны. Однако, для нашего проекта статические файлы мы будет хранить на том же сервере что и сам Django.

Закрываем локальный веб-сервер через CTRL+C. Создаем новую директорию под названием static.

Как и в случае с директорией templates, сейчас нам понадобится обновить файл settings.py для уведомления Django о месте поиска статических файлов. В settings.py потребуется изменить переменную STATICFILES_DIRS. Внесем изменения в нижнюю часть файла под переменной STATIC_URL.

# blog_project/settings.py
STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static’)]



# blog_project/settings.py

STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static’)]

Теперь внутри static создаем директорию css и добавляем новый файл base.css в нее.

(blog) $ mkdir static/css
(blog) $ touch static/css/base.css



(blog) $ mkdir static/css

(blog) $ touch static/css/base.css

Что добавить в файл? Может, поменяем цвет заголовка на красный?

/* static/css/base.css */
header h2 a {
color: red;
}



/* static/css/base.css */

header h2 a {

  color: red;

}

В конце нужно включить статические файлы в наши шаблоны, добавив {% load static %} в верхнюю часть base.html. Так как остальные шаблоны унаследуют каркас от base.html, то редактировать надо будет только этот файл. Добавляем новую строку в шаблоне, она напрямую отсылает к новому файлу base.css.

<!— templates/base.html —>
{% load static %}
<html>
<head>
<title>Django blog</title>
<link href=»{% static ‘css/base.css’ %}» rel=»stylesheet»>
</head>



<!— templates/base.html —>

{% load static %}

<html>

  <head>

    <title>Django blog</title>

    <link href=»{% static ‘css/base.css’ %}» rel=»stylesheet»>

  </head>

  …

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

Заново запускаем веб-сервер через команду python manage.py runserver и смотрим на изменения в обновленной домашней странице http://127.0.0.1:8000/.

blog

Домашняя страница блога с красным заголовком

Давайте изменим еще что-то. Как насчет нового шрифта? Давайте просто вставим следующий код бесплатного шрифта Source Sans Pro от Google между тегами <head></head>.

<!— templates/base.html —>
{% load static %}
<html>
<head>
<title>Django blog</title>
<link href=»https://fonts.googleapis.com/css?family=Source+Sans+Pro:400″ rel=»stylesheet»>
<link href=»{% static ‘css/base.css’ %}» rel=»stylesheet»>
</head>



<!— templates/base.html —>

{% load static %}

<html>

<head>

  <title>Django blog</title>

  <link href=»https://fonts.googleapis.com/css?family=Source+Sans+Pro:400″ rel=»stylesheet»>

  <link href=»{% static ‘css/base.css’ %}» rel=»stylesheet»>

</head>

  …

Затем мы должны обновить файл css, скопировав и вставив следующий код:

/* static/css/base.css */
body {
font-family: ‘Source Sans Pro’, sans-serif;
font-size: 18px;
}

header {
border-bottom: 1px solid #999;
margin-bottom: 2rem;
display: flex;
}

header h2 a {
color: red;
text-decoration: none;
}

.nav-left {
margin-right: auto;
}

.nav-right {
display: flex;
padding-top: 2rem;
}

.post-entry {
margin-bottom: 2rem;
}

.post-entry h3 {
margin: 0.5rem 0;
}

.post-entry h3 a,
.post-entry h3 a:visited {
color: blue;
text-decoration: none;
}

.post-entry p {
margin: 0;
font-weight: 400;
}

.post-entry h3 a:hover {
color: red;
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

/* static/css/base.css */

body {

  font-family: ‘Source Sans Pro’, sans-serif;

  font-size: 18px;

}

 

header {

  border-bottom: 1px solid #999;

  margin-bottom: 2rem;

  display: flex;

}

 

header h2 a {

  color: red;

  text-decoration: none;

}

 

.nav-left {

  margin-right: auto;

}

 

.nav-right {

  display: flex;

  padding-top: 2rem;

}

 

.post-entry {

  margin-bottom: 2rem;

}

 

.post-entry h3 {

  margin: 0.5rem 0;

}

 

.post-entry h3 a,

.post-entry h3 a:visited {

  color: blue;

  text-decoration: none;

}

 

.post-entry p {

  margin: 0;

  font-weight: 400;

}

 

.post-entry h3 a:hover {

  color: red;

}

Перезагрузив домашнюю страницу http://127.0.0.1:8000/, вы увидите следующее.

blog

Домашняя страница блога с CSS

Создаем отдельную страницу DetailView для статьи

Теперь можно добавить функционал для индивидуальных страниц блога. Как это сделать? Понадобится новое представление (view), настройка url маршрута и HTML шаблон. Надеюсь, вы уже уловили суть и правила разработки c Django.

Начнем с представления. Для простоты можем использовать общий класс DetailView. В верхней части файла импортируем DetailView и затем создаем новое представление под названием BlogDetailView.

# blog/views.py
from django.views.generic import ListView, DetailView # новое

from .models import Post


class BlogListView(ListView):
model = Post
template_name = ‘home.html’


class BlogDetailView(DetailView): # новое
model = Post
template_name = ‘post_detail.html’



# blog/views.py

from django.views.generic import ListView, DetailView # новое

 

from .models import Post

 

 

class BlogListView(ListView):

    model = Post

    template_name = ‘home.html’

 

 

class BlogDetailView(DetailView): # новое

    model = Post

    template_name = ‘post_detail.html’

В новом представлении мы указываем на используемую модель Post, а также на файл HTML шаблона, с которым нужно ее ассоциировать — post_detail.html. По умолчанию DetailView предоставляет объект содержимого модели, которого мы можем использовать в шаблоне для получения данных о статье, название переменной зависит от названия модели, в нашем случае это post. Кроме того, класс DetailView запрашивает первичный ключ (ID), либо slug в качестве идентификатора требуемой нами записи из БД. Скоро поговорим и об этом.

Закрываем локальный веб-сервер через CTRL+C и создаем новый HTML шаблон для просмотра записей на отдельной странице:

8 обучалок Django | GeekBrains

Познаем главный Python-фреймворк.

https://d2xzmw6cctk25h.cloudfront.net/post/1117/og_cover_image/4c23b8cd2388064be2907eb878606172

Django является одним из самых популярных фреймворков для языка Python. Он использовался при разработке таких ресурсов, как Instagram, YouTube, Google, Mozilla и многих других. Django поддерживает массу инструментов и шаблонов для быстрого и эффективного создания современного веба любой сложности.

Если вы решили связать свою жизнь с Python, то знакомство с Django — неизбежная ступень вашего развития. Вот 8 ресурсов, которые помогут вам познакомиться с этим фреймворком поближе.

Курс GeekBrains

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

К счастью, здесь на портале GeekBrains такой курс имеется. К началу занятий лучше подтянуть свои знания по JavaScript, Ajax и Python, чтобы не тратить на это время по ходу занятий. Придется выполнять очень много практической работы, но зато на выходе вы уже получите реальный набор навыков и готовый проект для своего портфолио.

Tango With Django

Очень увлекательный учебник для изучения Python через Django. Информация подается очень доступно для новичков, присутствуют картинки, иллюстрации и даже немного юмора. Кроме того, в процессе чтения вы познакомьтесь с другими языками веба, системой контроля версий Git и общими принципами работы сетей. Первые 2 части находятся в свободном доступе, а самая свежая версия — только за деньги. И да, обязательно подтяните английский язык.

Writing your first Django app

Официальное руководство в 7 частях по созданию вашего первого мобильного приложения с использованием Django. Рассчитано на тех, у кого есть хотя бы небольшой опыт работы с Python. Информация подается достаточно сухо, но зато в пошаговом формате и при этом подробно. По окончанию курса, вернитесь к разделу “Tutorials” и увидите еще пару полезных разделов. Один из них посвящен масштабированию приложений, другой — список рекомендуемой литературы для дальнейшего развития.

Django Girls Tutorial

Очень забавный ресурс для посвящения прекрасной половины человечества в мир Django. Огромным плюсом является не только легкая подача информации, но и перевод на русский язык. Знакомство с Django при этом довольно общее, но после него можно смело браться за более серьезные ресурсы — базовые принципы изложены великолепно.

Django Weekly

Ресурс с еженедельными рассылками по Django. Здесь можно найти информацию всем — и новичкам, делающим первые шаги, и тем кому надо глубже продвинуться в каком-то конкретном направлении, и тем профи, кто просто с удовольствием прочитает новую информацию про используемый продукт.

Ultimate Django

Руководство, начинающееся с очень привлекательных слов о зарплате Django -специалистов в США. Не смущайтесь, в остальном, это достаточно качественная онлайн книга, содержащая не только step-by-step уроки по созданию своего первого приложения, но и дальнейшее развитие в виде создания функционала и деплоя.

TaskBuster Django Tutorial

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

Django на русском

Для тех, кому все-таки английский язык пока не дается, имеется возможность пройти курс от новичка до уверенного разработчика с данным ресурсом. Помимо учебника, здесь есть форум, раздел “Новости”, а также периодически публикуются обзорные узкоспециальные статьи.

Создание первого приложения на Django, часть 1 | Документация Django 3.0

Давайте учиться на примере.

В этом уроке мы расскажем о создании базового приложения для голосования.

Он будет состоять из двух частей:

  • Публичный сайт, который позволяет людям просматривать опросы и голосовать в них.
  • Сайт администратора, который позволяет добавлять, изменять и удалять опросы.

Мы предполагаем, что вы уже установили Django. Вы можете узнать, установлена ли Django и какая версия, выполнив в командной строке следующую команду (указывается префиксом $):

Если фреймворк Django установлен, вы увидите номер версии. Если нет, вы получите сообщение об ошибке «Нет модуля с именем django».

Это руководство написано для Django 3.0, которая поддерживает Python 3.6 и более поздние версии. Если версия Django не совпадает, вы можете обратиться к учебнику для вашей версии Django, используя переключатель версий в правом нижнем углу этой страницы, или обновить Django до последней версии. Если вы используете более старую версию Python, проверьте Какие версии Python можно использовать с Django?, чтобы найти совместимую версию Django.

Смотрите Как установить Django, чтобы узнать как удалить старые версии Django и установить последнюю версию.

Где получить помощь:

Если у вас возникли трудности с этим руководством, можно написать сообщение в django-users или зайти в чат #django on irc.freenode.net, где другие пользователи Django могут вам помочь.

Создание проекта¶

Если вы раньше Django не использовали, то необходимо позаботиться о начальной настройке. А именно, необходимо автоматически сгенерировать определенный код, который устанавливает Django project — набор настроек для конкретного экземпляра Django, включающий в себя конфигурацию базы данных, специфичные для Django опции специфичные настройки для приложения.

Выполните в терминале в командной строке cd: смену каталога на тот, в котором вы хотите хранить код проекта, затем запустите следующую команду:

Это создаст каталог mysite в текущем каталоге. Если этого не произошло, то смотрите Problems running django-admin.

Примечание

Не рекомендуется в качестве названия проекта названия встроенных компонентов Python или Django. Это значит, что следует избегать использования таких имен, как django (будет конфликт с самим фреймворком) или test (будет конфликтовать со стандартным пакетом Python).

Где этот код должен находится?

Если бэкграунд написан на простом старом PHP (без использования современных фреймворков), вы, вероятно, привыкли размещать код в корневом каталоге веб-сервера (например, /var/www). С Джанго так лучше не делать. Не стоит помещать какой-либо Python код в корневой каталог веб-сервера, потому что существует риск, что он может стать доступным для просмотра. Это не очень хорошо для безопасности сервера.

Размещайте свой код в каком-либо каталоге вне корневого каталога сервера, например /home/mycode.

Давайте посмотрим на результат выполнения команды startproject:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Разберем, для чего нужны эти файлы и каталоги:

  • Внешний корневой каталог mysite/ — это контейнер для вашего проекта. Его имя не имеет значения для Джанго; Вы можете переименовать его на что угодно.
  • manage.py: утилита, позволяющая взаимодействовать с проектом различными способами. Вы можете прочитать все подробности о manage.py в django-admin and manage.py.
  • Внутренний каталог mysite/ это Python модуль вашего проекта. Его название вы будете использовать для импорта чего-либо из этого модуля (например, mysite.urls).
  • mysite/__init__.py: пустой файл, который сообщает Python, что этот каталог должен рассматриваться как пакет Python’а. Если вы новичок в Python, прочитайте больше о пакетах в официальной документации Python.
  • mysite/settings.py: Конфигурация и настройки проекта Django. В Django settings рассказано все о том, как работают настройки.
  • mysite/urls.py: указание URL проекта на Django, можно сказать, что это «оглавление» вашего проекта. Прочитайте больше информации о URL в URL dispatcher.
  • mysite/wsgi.py: Точка входа для WSGI совместимых веб-серверов для работы с проектом. Смотрите How to deploy with WSGI для уточнения деталей работы.

Сервер разработки¶

Давайте проверим, работает ли ваш проект Django. Перейдите во внешний каталог mysite, если вы этого еще не сделали, и выполните следующие команды:

Вы увидите следующий вывод в командной строке:


Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

июня 05, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Примечание

Пока игнорируйте предупреждение о непримененных миграциях базы данных; мы разберемся с базой данных в ближайшее время.

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

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

Теперь, когда запущен сервер, откройте в браузере страницу с адресом http://127.0.0.1:8000/. Вы должны увидеть страницу «Congratulations!» с взлетающей ракетой. Всё работает!

Смена порта

По умолчанию команда runserver запускает сервер разработки на внутреннем IP адресе с портом 8000.

Для смены порта передайте его аргументом в командной строке. Например, эта команда запускает сервер на порту 8080:

Для изменения IP адреса сервера, передайте его вместе с портом. Например, чтобы использовать все доступные публичные IP-адреса (что полезно, если вы работаете с Vagrant или хотите показать свою работу на других компьютерах в сети), используйте:

0 это сокращение для 0.0.0.0. Полная документация по серверу разработки находится в руководстве runserver.

Автоматическая перезагрузка runserver

Сервер разработки автоматически перезагружает код Python для каждого запроса по мере необходимости. Вам не нужно перезагружать сервер, чтобы изменения в коде вступили в силу. Однако некоторые действия, такие как добавление файлов, в эти условия не входят, поэтому вам придется перезапустить сервер в этих случаях.

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

Теперь, когда ваше окружение — «проект» — настроено, вы можете приступить к дальнейшей работе.

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

Проекты и приложения

В чем разница между проектом и приложением? Приложение — это веб-приложение, которое что-то делает, например, система Weblog, база данных публичных записей или небольшое приложение для опроса. Проект — это набор настроек и приложений для определенного сайта. Проект может содержать несколько приложений. Приложение может быть в нескольких проектах.

Ваши приложения могут находится где угодно в Python path. В этом уроке мы создадим приложение для опроса прямо рядом с вашим файлом manage.py, чтобы его можно было импортировать как собственный модуль верхнего уровня, а не как подмодуль` mysite`.

Чтобы создать приложение, убедитесь, что вы находитесь в том же каталоге, что и manage.py, и введите следующую команду:

Это создаст каталог polls, который выглядит так:

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

В этой структуре каталогов будет размещено приложение опроса.

Написание первого представления¶

Давайте напишем первое представление (view). Откройте файл polls/views.py и вставьте в него следующий код Python:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

Это самое простое представление, возможное в Django. Чтобы вызвать представление, нам нужно сопоставить его с URL — и для этого нам нужен URLconf.

Чтобы создать URLconf в каталоге polls, создайте файл с именем urls.py. Ваш каталог с приложением должен выглядеть примерно так:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

В файл polls/urls.py добавьте следующий код:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

Следующим шагом является указание корневого URLconf на модуль polls.urls. В mysite/urls.py добавьте импорт django.urls.include и вставьте include() в список` urlpatterns`, у вас должно получиться так:

from django.contrib import admin
from django.urls import include, path

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

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

Идея, стоящая за include(), состоит в том, чтобы упростить добавление и воспроизведение URL-адресов. Так как опросы находятся в их собственном URLconf(polls/urls.py), их можно поместить в «/polls/», или в «/fun_polls/», или в «/content/polls/», или по любому другому корневому пути, и приложение все равно будет работать.

Когда использовать include()

Вы всегда должны использовать include() при включении других шаблонов URL. admin.site.urls — единственное исключение из этого.

Теперь вы подключили представление index к URLconf. Убедитесь, что он работает с помощью следующей команды:

Перейдя в браузере по адресу http://localhost:8000/polls/, вы должны увидеть текст «Hello, world. You’re at the polls index.», который вы определили в представлении index.

Страница не найдена?

Если вы получили страницу с ошибкой, убедитесь, что переходите на http://localhost:8000/polls/, а не на http://localhost:8000/.

Функция path() передает четыре аргумента, два обязательных: route и view, и два необязательных: kwargs и name. На данный момент стоит рассмотреть, для чего эти аргументы.

path(), аргумент route

route — строка, содержащая шаблон URL. При обработке запроса Django начинается с первого шаблона в urlpatterns и пробирается вниз по списку, сравнивая запрошенный URL с каждым шаблоном, пока не найдет тот, который соответствует.

Шаблоны не выполняют поиск параметров GET и POST или имени домена. Например, в запросе к https://www.example.com/myapp/, URLconf будет искать myapp/. В запросе к https://www.example.com/myapp/?Page=3, URLconf также будет искать только myapp/.

path(), аргумент view

Когда Django находит соответствующий шаблон, он вызывает указанную функцию представления с объектом HttpRequest в качестве первого аргумента и любые «захваченные» значения из маршрута в качестве аргументов ключевого слова. Мы приведем пример этого чуть позже.

path(), аргумент kwargs

Произвольные ключевые аргументы могут быть переданы в словаре в целевое представление. Мы не собираемся использовать эту функцию Django в этом уроке.

path(), аргумент name

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

Когда вы освоитесь с основами запросов и ответов, прочитайте вторую часть этого руководства, чтобы начать работу с базой данных.

Python Django Tutorial для начинающих

Здравствуйте, друзья, добро пожаловать в самый первый пост этого сайта. Здесь мы собираемся изучить Python Django Framework. Это учебник Python Django для начинающих. Если вы абсолютный новичок в среде Python Django, то вы попали в нужное место. Я буду использовать операционную систему Windows. Но вы все равно можете следовать этому руководству на Mac или Linux. Итак, начнем.

Python Django Tutorial для начинающих — Обзор

Предварительные требования

Чтобы продолжить изучение этого руководства по Python Django для начинающих, вы должны обладать фундаментальными знаниями программирования на Python.Поскольку мы непосредственно переходим к веб-разработке с использованием фреймворка Python Django, я предполагаю, что вы знакомы с основами python.

Требуется IDE

Хотя использование IDE не обязательно, вы также можете использовать текстовый редактор. Но я буду использовать PyCharm IDE от JetBrains. Вы можете скачать эту IDE по приведенной ниже ссылке.

Загрузить PyCharm

Что такое Python Django?

Как сказано в изюминке, Python Django — это Веб-фреймворк для перфекционистов со сроками .Итак, это веб-фреймворк. Используя эту структуру, мы можем быстро разрабатывать веб-приложения.

Python Django Tutorial для начинающих — Конфигурация

Загрузка и установка Python

  • Перейдите по этой ссылке и загрузите установщик python в соответствии с вашей операционной системой.
  • Как только вы получите исполняемый файл (я предполагаю, что вы работаете в Windows), откройте его.
  • Не устанавливайте в расположение по умолчанию, выбрав «Установить сейчас» (поскольку путь слишком длинный 😛), вместо этого выберите «Настроить расположение».
  • Теперь продолжите установку и во время установки выберите место, показанное на изображении ниже. (Вы можете изменить местоположение, но сделайте его коротким, а имя папки и путь не должны содержать пробелов ).
  • После завершения установки вам нужно настроить некоторые переменные среды.

Настройка переменных среды

Для завершения установки вам необходимо настроить переменные среды python.Выполните следующие действия, чтобы установить переменные среды.

  • Перейдите в каталог установки python (c: \ Python) и скопируйте адрес.
  • Теперь перейдите к переменным среды (переменные среды поиска)
  • Щелкните Edit the System Environment Variables .
  • Теперь вы увидите новое окно с названием Свойства системы . В этом окне вы найдете кнопку внизу под названием «Переменные среды».Щелкните по этой кнопке.
  • Теперь в области переменных системной среды щелкните по новой и в поле имени введите «путь» без кавычек, а в поле значения вставьте свой путь. (пояснения см. На изображении ниже).
  • Как видите, я вставил еще один адрес, который находится внутри каталога установки python. Вам также необходимо написать этот адрес (разделите оба адреса запятой, как я сделал на изображении выше).Теперь нажмите ОК и примените изменения.
  • Давайте проверим, удалась установка или нет. Итак, откройте Powershell в режиме администратора. И введите следующую команду.
 python - версия
easy_install - версия 
  • С помощью приведенной выше команды, если вы получили следующий результат, вы закончили установку python.
  • Как видите, команды работают в PowerShell, это означает, что установка python прошла успешно.

Установка Django

Мы закончили установку python. Теперь давайте установим Django.

  • Введите следующую команду в Django и нажмите Enter.
 easy_install django 
  • Приведенная выше команда установит последнюю версию Django. Это может занять некоторое время в зависимости от скорости вашего интернета. После завершения установки выполните следующую команду, чтобы подтвердить установку.
 django-admin - версия 
  • Приведенная выше команда даст следующий результат.
  • Если вы видите результат, показанный на скриншоте, то BINGO! вы выполнили установку django.

Python Django Tutorial для начинающих — ваш первый проект Django

Создание проекта

Теперь мы создадим наш самый первый проект Django. Следуй этим шагам.

  • В PowerShell перейдите в каталог, в котором вы хотите создать свой проект. В моем случае я использую свой диск F: .
  • Теперь, чтобы создать новый проект, введите следующую команду и нажмите Enter.
 django-admin startproject MyDjangoApp 
  • В приведенной выше команде MyDjangoApp — это имя нашего проекта, вы можете изменить его на все, что захотите (только не используйте пробелы)
  • После запуска команды проверьте каталог, который вы выбрали при создании проекта.
  • Итак, у нас есть новая папка в данном каталоге (F: в моем случае) .

Создание нашего сервера

  • Теперь вернитесь в PowerShell и перейдите в каталог проекта.
  • Внутри вашего проекта есть файл python manager.py. Этот файл содержит множество функций, которые мы будем использовать. Подробное описание этого файла приведено в официальной документации .
  • Теперь выполните следующую команду, чтобы запустить сервер разработки.
 python manage.py сервер запуска 
  • Вы увидите следующий результат.
  • Как видите, сервер разработки работает по адресу http://127.0.0.1:8000/, введите его в браузере для проверки. Вы увидите следующий результат.

Следующее сообщение: Учебник по представлениям Django — создание первого представления

Бинго! Ваш сервер разработки работает правильно. Сейчас я завершаю здесь Python Django Tutorial для начинающих . В следующем посте мы начнем делать классные вещи в нашем проекте Django.И да, не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы или недоразумения, связанные с этим учебником Python Django для начинающих. Спасибо 🙂

Связанные

,

Лучший учебник Python Django для начинающих — со структурой проекта

1. Цель

В нашем последнем руководстве мы обсудили Как работать с реляционной базой данных с Python . В этом руководстве по Python Django для начинающих мы увидим, как установить Django Python. Кроме того, мы изучим историю Python Django и MVT Pattern. Наряду с этим мы расскажем о возможностях Python Django и о том, как создать приложение на Python Django. Наконец, мы рассмотрим структуру проекта на Python Django.

Итак, приступим к уроку Python Django.

Best Python Django Tutorial For Beginners (Advanced 2018)

Лучший учебник по Python Django для начинающих

2. Учебник по Python Django — Что такое Django?

Django — это высокоуровневый фреймворк Python . Он бесплатный и с открытым исходным кодом, написан на самом Python и следует архитектурному шаблону модель-представление-шаблон. Мы можем использовать его для более быстрой и простой разработки качественных веб-приложений. Поскольку для разработки в Интернете требуется набор аналогичных компонентов, вы можете использовать фреймворк.Таким образом, вам не придется изобретать велосипед. Эти задачи включают аутентификацию, формы, загрузку файлов, панели управления и т. Д.

Best Python Django Tutorial For Beginners (Advanced 2018)

Лучший учебник по Python Django для начинающих

3. Учебник по Python Django — установка Django

Для работы с Django в вашей системе,
C: \ Users \ lifei> pip install Django

55 Collecting Давайте исследуем уникальные особенности языка программирования Python
Скачивание файлов https: //.pythonhosted.org/packages/ab/15/cfde97943f0db45e4f999c60b696fbb4df59e82bbccc686770f4e44c9094/Django-2.0.7-py3-none-any.whl (7,1 МБ)
100% | █████████████ ███████████████ | 7,1 МБ 610 кБ / с
Требование уже выполнено: pytz в c: \ users \ lifei \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages (от django) (2018.5)
Установка собранных пакетов: django
Успешно установлен django-2.0.7

4. Учебное пособие по Python Django — Обслуживание запроса на веб-сайт

Давайте сначала выясним, говоря языком непрофессионала, что происходит, когда ваш сервер получает запрос на веб-сайт.Запрос передается в Django, который пытается проанализировать этот запрос. Преобразователь URL-адресов пытается сопоставить URL-адрес со списком шаблонов. Он выполняет это соответствие сверху вниз. Если он может найти совпадение, он передает запрос в представление , которое является связанной функцией.
Функция view может проверить, разрешен ли запрос. Он также генерирует ответ, а затем Django отправляет его в веб-браузер пользователя.

5. Python Django Tutorial — History

  • Адриан Головати и Саймон Уиллисон создали Django осенью 2003 года в газете Lawrence Journal-World.
  • Django публично выпущен под лицензией BSD в июле 2005 года; назван в честь гитариста Джанго Рейнхардта
  • Сегодня Django — это проект с открытым исходным кодом, в котором участвуют участники со всего мира

6.Учебное пособие по Python Django — шаблон MVT

MVC означает Model-View-Controller . Мы используем это, когда хотим разрабатывать приложения с пользовательскими интерфейсами. MVT расшифровывается как Model-View-Template . Шаблон — это HTML-файл, смешанный с DTL ( Django Template Language ). Django заботится о части контроллера, которая представляет собой программный код и управляет взаимодействием между двумя другими частями — моделью и представлением. Когда пользователь запрашивает ресурс, Django действует как контроллер и проверяет, доступен ли он.Если URL-адрес сопоставляется, View взаимодействует с моделью и отображает шаблон. Python Django отправляет пользователю шаблон в качестве ответа.
Прочтите об утверждениях принятия решений Python с синтаксисом и примерами

Best Python Django Tutorial For Beginners (Advanced 2018)

Лучшее руководство по Python Django для начинающих

Модель помогает нам управлять базой данных. Представление выполняет бизнес-логику и взаимодействует с моделью для переноса данных. Он также отображает Template. Шаблон обрабатывает пользовательский интерфейс и представляет собой уровень представления.
Класс Model содержит важные поля и методы.Для каждого класса модели у нас есть таблица в базе данных. Модель является подклассом django.db.models.Model. Каждое поле здесь обозначает поле базы данных. С Django у нас есть API абстракции базы данных, который позволяет нам выполнять операции CRUD (Create-Retrieve-Update-Delete) над сопоставленными таблицами.

7. Python Django Tutorial — Особенности Django

При работе с Python Django вы можете ожидать следующие возможности Django:

Best Python Django Tutorial For Beginners (Advanced 2018)

Лучшее руководство по Python Django — Особенности Django

a.Масштабируемость

Если вам нужно масштабировать систему, вы можете просто добавить дополнительные веб-узлы в свой Django. То есть можно масштабировать по горизонтали. Два продукта, использующие масштабируемость Django, — это Disqus и Instagram.
Знаете ли вы об ошибках и исключениях в программировании на Python

b. Переносимость

Переносимость Python делает его также портативным Django. Различные платформы включают Windows, , Linux, и MacOS.

г. Безопасность

Python Django также обеспечивает некоторые меры безопасности.Одним из них является то, что он хранит хешированные пароли в файлах cookie.

г. Универсальность

Python Django будет работать с такими форматами, как HTML, JSON, XML и другими. Он также поддерживает множество различных клиентских фреймворков. Таким образом, мы можем использовать его для создания чего угодно, включая обычные веб-сайты и социальные сети.

эл. Пакеты

В основе программирования Django лежат тысячи дополнительных пакетов.

ф. Простота использования

Такие функции, как встроенный интерфейс администратора, упрощают сборку с помощью Django.Он также полностью функционален и позволяет легко переключать базы данных.

8. Предварительные условия для создания проекта в Django

В этом руководстве Python Django мы изучим предварительные условия для создания проекта в Python Django.

а. Запуск проекта

Используйте следующую команду в командной строке, чтобы начать свой проект:

C: \ Users \ lifei \ Desktop> django-admin startproject project0

Затем перейдите в эту папку.

C: \ Users \ lifei \ Desktop> cd project0

C: \ Users \ lifei \ Desktop \ project0>

b.Запуск сервера

Вы можете применить эти миграции перед запуском сервера —

C: \ Users \ lifei \ Desktop \ project0> python manage.py migrate

Теперь запустите сервер —

C: \ Users \ lifei \ Desktop \ project0> python manage.py runserver

Выполнение системных проверок…

Ознакомьтесь с аргументами функций Python с типами, синтаксисом и примерами

Проверка системы не выявила проблем (0 отключено).

08 июля 2018 г. — 21:51:39

Django версии 2.0.7, с использованием настроек ‘project0.settings’

Запуск сервера разработки по адресу http://127.0.0.1:8000/

Закройте сервер с помощью CTRL -ПЕРЕРЫВ.

Если вы видите что-то подобное, это означает, что вы успешно установили Django:

Python Django Tutorial - Prerequisites to Creating a Project

Python Django Tutorial — Prerequisites to Creating a Project

c. Настройка базы данных

Для нашего проекта мы настроили MySQL: http: // www.mysql.com/
Python также поддерживает другие продукты баз данных, такие как Oracle, SQLite 3, MongoDB , PostgreSQL и GoogleAppEngine Datastore.

г. Веб-сервер

Хотя у Django есть собственный легкий веб-сервер, вы также можете использовать свой собственный, например Apache.

9. Структура проекта Django

Вот как будет выглядеть ваш каталог проекта:

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Структура проекта

Знаете ли вы разницу между Python Generator и Iterator

a.manage.py

Этот сценарий позволяет нам взаимодействовать с нашим проектом с помощью командной строки. Услуги включают запуск сервера и синхронизацию с базой данных.

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — manage.py

b. Папка проекта

В ней хранятся пакеты для нашего проекта —

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Папка проекта

  • __init __. Py- A Python package .
  • settings.py- Здесь хранятся настройки веб-сайта, такие как детали конфигурации базы данных.
  • urls.py- Здесь хранятся ссылки на ваш проект и функции.
  • wsgi.py- Это развертывает наш проект через WSGI и помогает приложению взаимодействовать с веб-сервером. WSGI означает интерфейс шлюза веб-сервера.
  • __pycache __- В этом каталоге хранятся такие файлы, как __init __. Cpython-36.pyc, settings.cpython-36.pyc, urls.cpython-36.pyc и wsgi.cpython-36.pyc.

В settings.py для DEBUG установлено значение True. Это нормально во время развертывания, но вы должны установить значение False при работе с живым проектом.Это потому, что это выдает информацию об ошибках в вашем проекте.
Прочтите о модулях Python и пакетах
Еще одна конструкция, которую вы найдете в этом файле, —

 DATABASES = {
'дефолт': {
'ДВИГАТЕЛЬ': 'django.db.backends.sqlite3',
'ИМЯ': os.path.join (BASE_DIR, 'db.sqlite3'),
}
} 

c. db.sqlite3

Это файл базы данных для вашего проекта с расширением .sqlite3.

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

Давайте узнаем, как создать приложение в Django с помощью этого учебного пособия по Python Django.Проекты модульные. Контактная форма — одно из таких приложений, и вы можете позаимствовать ее из одного проекта для другого. Вы можете запустить приложение следующим образом:
C: \ Users \ lifei \ Desktop \ project0> python manage.py startapp app0
Это создает следующее содержимое в каталоге project0:

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Создание приложения

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Как создать приложение

  • Migrations- Здесь содержится еще один __init__.py файл.
  • __init __. Py- Это пакет Python.
  • admin.py- Это позволяет нам сделать приложение доступным для изменения в интерфейсе администратора.
  • apps.py- Здесь хранятся имена всех ваших приложений.
  • models.py- Содержит все модели приложений.
  • tests.py- Содержит модульные тесты для проекта.
  • views.py- Содержит представления приложения для проекта.

Давайте подготовим себя с помощью 35 лучших вопросов и ответов на собеседовании по Python.
В ваших настройках.py, вы можете добавить имя своего приложения в конструкцию INSTALLED_APPS —

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

11. Интерфейс администратора Python Django

Здесь, в этом руководстве по Python Django, мы увидим, как использовать интерфейс администратора Django?
Используя интерфейс администратора Django, вы можете выполнять операции CRUD с моделью.Этот интерфейс зависит от модели django.countrib; он включен по умолчанию. Вы можете найти его как «django.contrib.admin» в INSTALLED_APPS в settings.py.
Чтобы получить доступ к этому интерфейсу, вы можете попробовать один из двух методов:

  • 127.0.0.1:8000/admin
  • localhost: 8000 / admin

Вы получите что-то вроде этого:

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Admin Interface

Знаете ли вы, что такое сериализация в Python с примером
a.Создание суперпользователя
Чтобы создать суперпользователя, вы можете нажать следующую команду:

python manage.py createduperuser

После того, как вы закончите создание суперпользователя, используйте это имя пользователя и пароль для входа в панель управления.

Best Python Django Tutorial For Beginners (Advanced 2018)

Python Django Tutorial — Как создать супериспользование

12. Как создать простой проект в Django?

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

 >>> from django.http import HttpResponse
>>> def hello (запрос):
      return HttpResponse ("Hello") 

Мы сохраняем этот файл как представления.py во внутреннем каталоге project0.
Вот как мы можем его импортировать —

 >>> os.chdir ('C: \\ Users \\ lifei \\ Desktop \\ project0')
>>> from project0.views import hello 

a. Сопоставление с URL-адресом

Теперь во внутреннем каталоге project0 у вас есть файл urls.py. Это выглядит примерно так:

«» »project0 Конфигурация URL

Список` urlpatterns` направляет URL-адреса в представления. Для получения дополнительной информации см .:

https: // docs.djangoproject.com/en/2.0/topics/http/urls/
Примеры:

Представления функций

  • Добавить импорт: из представлений импорта my_app
  • Добавить URL к шаблонам URL: путь ( ”, Views.home, name = ‘home’)

Представления на основе классов

  • Добавить импорт: from other_app.views import Home
  • Добавить URL к шаблонам URL: path (”, Home.as_view (), name = ‘home’)

Включение другого URLconf

  • Импортируйте функцию include (): из django.url import include, path
  • Добавьте URL-адрес в urlpatterns: path (‘blog /’, include (‘blog.urls’))

«» »
Перейдите по этой ссылке, чтобы узнать о Python Flask : Веб-фреймворк для Python

 >>> от администратора импорта django.contrib
>>> из пути импорта django.urls
>>> urlpatterns = [
        путь ('admin /', admin.site.urls),
] 

Здесь urlpatterns кортеж сопоставляют URL-адреса с представлениями.Добавьте эту строку импорта в urls.py:
из project0.views import hello

А затем добавьте это значение в свой urlpatterns tuple:

 path ('hello /', hello), 

Best Python Django Tutorial For Beginners (Advanced 2018)

Best Python Django Tutorial — Сопоставление с URL-адресом

Теперь перейдите по следующему адресу — http://127.0.0.1:8000/hello/

Best Python Django Tutorial For Beginners (Advanced 2018)

Лучшее учебное пособие по Python Django для начинающих

Итак, это все о Python Django Tutorial. Надеюсь, вам понравится наше объяснение.

13.Заключение

Таким образом, в этом руководстве по Python Django мы начинаем работу с Django, очень распространенным фреймворком для Python. Здесь мы изучали историю и особенности Django. Кроме того, мы рассмотрим шаблон MVT, предварительные условия для создания проекта и многое другое. Тем не менее, у вас есть вопрос по Python Django Tutorial, оставьте комментарии ниже.
См. Также — Python Sequences and Collections
Ссылка

.

Введение | Django для начинающих

Добро пожаловать в Django для начинающих , проектный подход к обучению веб-разработке с помощью веб-платформы Django. В этой книге вы создадите пять все более сложных веб-приложений, начиная с простого приложения Hello, World , заканчивая приложением Pages , приложением Message Board , приложением Blog с формами и учетными записями пользователей и, наконец, приложение Newspaper , которое использует настраиваемую модель пользователя, интеграцию электронной почты, внешние ключи, авторизацию, разрешения и многое другое.

К концу этой книги вы будете чувствовать себя уверенно, создавая свои собственные проекты Django с нуля, используя современные передовые практики.

Django — это бесплатная веб-среда с открытым исходным кодом, написанная на языке программирования Python и используемая миллионами программистов каждый год. Его популярность объясняется удобством как для начинающих, так и для продвинутых программистов: Django достаточно надежен, чтобы его можно было использовать на крупнейших веб-сайтах в мире — Instagram, Pinterest, Bitbucket, Disqus, — но также достаточно гибок, чтобы быть хорошим выбором для начинающих. стартапы и прототипы личных проектов.

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

Почему Django

Веб-фреймворк — это набор модульных инструментов, которые абстрагируют большую часть трудностей и повторений, присущих веб-разработке.Например, большинству веб-сайтов требуются одни и те же базовые функции: возможность подключаться к базе данных, устанавливать маршруты URL, отображать контент на странице, правильно обеспечивать безопасность и т. Д. Вместо того, чтобы воссоздавать все это с нуля, программисты на протяжении многих лет создавали веб-фреймворки на всех основных языках программирования: Django и Flask в Python, Rails в Ruby и Express в JavaScript среди многих, многих других.

Django унаследовал подход Python «с включенными батареями» и включает готовую поддержку для общих задач веб-разработки:

  • аутентификация пользователя
  • шаблоны, маршруты и представления
  • интерфейс администратора
  • надежная защита
  • поддержка нескольких баз данных
  • и многое другое

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

Напротив, несколько популярных фреймворков — в первую очередь Flask в Python и Express в JavaScript — используют подход «микрофреймворк». Они предоставляют только минимум, необходимый для простой веб-страницы, и оставляют на усмотрение разработчика установку и настройку сторонних пакетов для репликации основных функций веб-сайта. Такой подход обеспечивает большую гибкость для разработчика, но также дает больше возможностей для ошибок.

По состоянию на 2019 год Django находится в активной разработке более 14 лет, что делает его опытным ветераном программного обеспечения.Миллионы программистов уже использовали Django для создания своих веб-сайтов, что, несомненно, хорошо. Веб-разработка — это сложно. Нет смысла повторять один и тот же код — и ошибки — когда большое сообщество блестящих разработчиков уже решило эти проблемы за нас.

В то же время Django все еще находится в стадии активной разработки и имеет годовой график выпуска. Сообщество Django постоянно добавляет новые функции и улучшения безопасности. И, что лучше всего, он написан на прекрасно читаемом, но все же мощном языке программирования Python.Короче говоря, если вы создаете сайт с нуля, Django — отличный выбор.

Почему эта книга

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

Обладая большим опытом, я теперь понимаю, что авторы документации Django столкнулись с трудным выбором: они могли подчеркнуть простоту использования Django или ее глубину, но не то и другое вместе.Они выбирают последнее, и как профессиональный разработчик я ценю этот выбор, но как новичок я нашел это таким… разочаровывающим! Моя цель в этой книге — заполнить пробелы и продемонстрировать, насколько удобен для начинающих Django.

Для работы с этой книгой вам не нужен опыт работы с Python или веб-разработки. Он намеренно написан так, чтобы даже новичок мог следить за ним и ощущать магию написания собственных веб-приложений с нуля. Однако, если вы серьезно относитесь к карьере в области веб-разработки, вам в конечном итоге придется потратить время на правильное изучение Python, HTML и CSS.Список рекомендуемых ресурсов для дальнейшего изучения включен в Заключение.

Структура книги

Мы начнем с правильного описания того, как настроить локальную среду разработки в Глава 1 . В этой книге мы используем новейшие инструменты: самую последнюю версию Django (3.0), Python (3.7) и Pipenv для управления нашими виртуальными средами. Мы также представляем командную строку и обсуждаем, как работать с современным текстовым редактором.

В Глава 2 мы создаем наш первый проект, минимальное приложение Hello, World , которое демонстрирует, как создавать новые проекты Django.Поскольку внедрение передовых методов разработки программного обеспечения важно, мы также сохраним нашу работу с помощью git и загрузим копию в удаленный репозиторий кода на GitHub.

В Глава 3 мы создаем, тестируем и развертываем приложение Pages , которое вводит шаблоны и представления на основе классов. Шаблоны — это то, как Django позволяет разработку DRY (Don’t Repeat Yourself) с помощью HTML и CSS, в то время как представления на основе классов довольно эффективны, но требуют минимального количества кода. Мы также добавляем наши первые тесты и развертываем в Heroku, где есть уровень бесплатного пользования, который мы будем использовать на протяжении всей этой книги.Использование поставщиков платформы как услуги, таких как Heroku, превращает процесс разработки из болезненного и трудоемкого процесса во что-то, для чего требуется всего несколько щелчков мышью.

В главе 4 мы создаем наш первый проект на базе базы данных, приложение Message Board . Django предоставляет мощную ORM, которая позволяет нам писать сжатый Python для наших таблиц базы данных. Мы рассмотрим встроенное приложение администратора, которое обеспечивает графический способ взаимодействия с нашими данными и может даже использоваться в качестве системы управления контентом (CMS), аналогичной WordPress.Конечно, мы также пишем тесты для всего нашего кода, храним удаленную копию на GitHub и развертываем на Heroku.

В главах 5-7 мы готовы к нашему следующему проекту: надежному приложению Blog , которое реализует функциональность CRUD (создание-чтение-обновление-удаление). Используя универсальные представления на основе классов Django, нам нужно написать только небольшой объем реального кода для этого. Затем мы добавим формы и интегрируем встроенную систему аутентификации пользователей Django для функций регистрации, входа и выхода.

Глава 8 посвящена правильным методам развертывания и вводит переменные среды, которые позволяют использовать выделенные локальные и производственные среды.

Оставшаяся часть книги, , главы 9–16, посвящена созданию надежного сайта Newspaper , начиная с введения в пользовательские модели в Глава 9 , передовой практике Django, которая редко рассматривается в учебных пособиях. Глава 10 охватывает аутентификацию пользователя, Глава 11 добавляет Bootstrap для стилизации, а главы 12-13 реализуют сброс и изменение пароля по электронной почте.В разделе , главы 14–16 мы добавляем статьи и комментарии к нашему проекту вместе с соответствующими разрешениями и авторизациями. Мы даже изучаем некоторые приемы настройки администратора для отображения растущих данных.

Заключение предоставляет обзор основных концепций, представленных в книге, и список рекомендуемых ресурсов для дальнейшего изучения.

Хотя вы можете выбирать главы для чтения, структура книги продумана. Каждое приложение / глава вводит новую концепцию и подкрепляет прошлые учения.Я настоятельно рекомендую читать книгу по порядку, даже если вы хотите пропустить ее вперед. Последующие главы не охватывают предыдущий материал так же глубоко, как предыдущие главы.

К концу этой книги вы получите твердое представление о том, как работает Django, о способности создавать приложения самостоятельно и о знаниях, необходимых для полного использования дополнительных ресурсов для изучения техник Django среднего и продвинутого уровней.

Книжный макет

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

  # Это код Python
print (Привет, мир)
  

Для краткости будем использовать точки ... для обозначения существующего кода, который остается неизменным, например, в функции, которую мы обновляем.

  def make_my_website:
    ...
    print ("Все готово!")
  

Мы также будем часто использовать консоль командной строки (начиная с Главы 1: Начальная установка) для выполнения команд, которые принимают форму префикса $ в традиционном стиле Unix.

Результатом этой конкретной команды будет следующая строка:

Обычно мы объединяем команду и ее вывод.Перед командой всегда будет стоять $ , а на выходе — нет. Например, команда и результат выше будут представлены следующим образом:

  $ echo "привет, мир"
Привет мир
  

Официальный исходный код

Полный исходный код всех глав можно найти в официальном репозитории GitHub. Хотя лучше всего набирать весь код вручную, если вы все-таки застряли с примером кодирования или видите странную ошибку, обязательно проверьте свой код на соответствие официальному репозиторию.А если вы все еще застряли, попробуйте скопировать и вставить официальный исходный код. Распространенной ошибкой является небольшая разница в расстоянии белого цвета, которую практически невозможно обнаружить невооруженным глазом.

Заключение

Django — отличный выбор для любого разработчика, который хочет создавать современные надежные веб-приложения с минимальным объемом кода. Он популярен, находится в стадии активной разработки и тщательно протестирован крупнейшими веб-сайтами мира. В следующей главе мы узнаем, как настроить любой компьютер для разработки Django.

Перейдите к главе 1: Первоначальная настройка.

,

Полное руководство по Django для новичков

Введение

Welcome Class

Сегодня я начинаю новую серию руководств по основам Django. Это полное руководство для начинающих.
изучение Django. Материал разделен на семь частей. Мы собираемся подробно изучить все основные концепции,
от установки, подготовки среды разработки, моделей, представлений, шаблонов, URL-адресов до более сложных тем
такие как миграция, тестирование и развертывание.

Я хотел сделать что-то другое. Учебник, которому будет легко следовать, информативным и интересным для чтения. Это было когда
Мне пришла в голову идея создать несколько комиксов по тексту, чтобы проиллюстрировать некоторые концепции и сценарии. Я надеюсь ты
приятного чтения!

Но прежде чем мы начнем…

Когда я работал заместителем профессора в университете, я преподавал введение в веб-разработку.
дисциплина для новичков курса информатики.И я всегда начинал с этого
Цитата Конфуция:

Confucius Quote

Итак, руки! Не просто читайте учебники. Давай сделаем это вместе! Вы узнаете гораздо больше, делая и практикуя.


Почему именно Django?

Django — это веб-фреймворк, написанный на Python. Веб-фреймворк — это программное обеспечение, которое поддерживает разработку динамических веб-приложений.
сайты, приложения и сервисы. Он предоставляет набор инструментов и функций, который решает многие общие проблемы.
связанные с веб-разработкой, такие как функции безопасности, доступ к базе данных, сеансы, обработка шаблонов, URL
маршрутизация, интернационализация, локализация и многое другое.

Использование веб-платформы, такой как Django, позволяет нам очень быстро разрабатывать безопасные и надежные веб-приложения в
стандартизированный способ, без необходимости изобретать велосипед.

Итак, что же такого особенного в Django? Во-первых, это веб-фреймворк Python, а это значит, что вы можете извлечь выгоду из широкого
ряд библиотек с открытым исходным кодом. Индекс пакетов Python
В репозитории размещено более 116K пакетов (по состоянию на 6 сентября 2017 г.). Если вам нужно решить конкретную проблему, шансы
Кто-то уже реализовал для него библиотеку.

Django — одна из самых популярных веб-фреймворков, написанных на Python. Это определенно самый полный, предлагающий широкий
набор готовых функций, таких как автономный веб-сервер для разработки и тестирования, кэширование,
система промежуточного программного обеспечения, ORM, механизм шаблонов, обработка форм, интерфейс с инструментами модульного тестирования Python. Django тоже приходит
с батареей в комплекте , предлагает встроенные приложения, такие как система аутентификации, административный интерфейс
с автоматически генерируемыми страницами для операций CRUD, генерацией каналов синдикации (RSS / Atom), картами сайта.Там в
даже фреймворк Географической информационной системы (ГИС), созданный в Django.

Разработка Django поддерживается Django Software Foundation,
и его спонсируют такие компании, как JetBrains и Instagram. Django также существует уже довольно давно.
Он находится в активной разработке уже более 12 лет и является зрелой, надежной и безопасной веб-структурой.

Кто использует Django?

Хорошо знать, кто использует Django, чтобы иметь представление, что с ним можно делать.Среди крупнейших сетей
сайты, использующие Django, у нас есть: Instagram,
Disqus, Mozilla,
Bitbucket, Last.fm,
Национальная география.

Дополнительные примеры вы можете увидеть в базе данных Django Sites, они предлагают
список из более чем 5K веб-сайтов на Django.

Кстати, в прошлом году на конференции Django Under The Hood 2016 Карл Мейер, разработчик ядра Django, и Instagram
сотрудник, рассказал о том, как Instagram использует Django в больших масштабах.
и как это поддерживало их рост. Это часовой разговор, но если вам интересно узнать больше, это был
занимательные беседы.


Установка

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

Basic Setup

Использование виртуальных сред не обязательно, но настоятельно рекомендуется. Если вы только начинаете, лучше
начать с правой ноги.

При разработке веб-сайтов или веб-проектов с помощью Django очень часто приходится устанавливать внешние библиотеки для
поддерживать развитие.Используя виртуальные среды, каждый разрабатываемый вами проект будет иметь свою изолированную среду.
Так что зависимости не будут конфликтовать. Это также позволяет вам поддерживать на вашем локальном компьютере проекты, которые выполняются на разных
Версии Django.

Это очень просто использовать, вот увидите!

Установка Python 3.6.2

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

Мы собираемся использовать Python 3, потому что наиболее важные библиотеки Python уже были портированы на Python 3, а также
следующая основная версия Django (2.x) больше не будет поддерживать Python 2. Итак, Python 3 — это то, что вам нужно.

Лучше всего использовать Homebrew. Если он не установлен на вашем Mac
тем не менее, выполните следующую команду в Terminal :

  / usr / bin / ruby ​​-e "$ (curl -fsSL https: // raw.githubusercontent.com/Homebrew/install/master/install) " 

Если у вас не установлены инструменты командной строки , установка Homebrew может занять немного больше времени. Но
он обо всем позаботится за вас, так что не беспокойтесь. Просто сядьте и дождитесь завершения установки.

Вы узнаете, когда установка завершится, когда увидите следующее сообщение:

  ==> Установка прошла успешно!

==> Homebrew включил анонимную совокупную аналитику поведения пользователей.Прочтите документацию по аналитике (и как отказаться) здесь:
  https://docs.brew.sh/Analytics.html

==> Следующие шаги:
- Запустите `brew help`, чтобы начать
- Дополнительная документация:
    https://docs.brew.sh  

Чтобы установить Python 3, выполните команду ниже:

  brew install python3  

Поскольку macOS уже поставляется с установленным Python 2, после установки Python 3 у вас будут доступны обе версии.

Чтобы запустить Python 2, используйте команду python в Терминале.Для Python 3 используйте вместо него python3 .

Мы можем протестировать установку, набрав в Терминале:

  python3 - версия
Python 3.6.2  

macOS Test Python 3

Перейдите на сайт www.python.org щелкните страницу загрузки Python 3.6.2, прокрутите вниз до
вы видите файлы загрузки, перечисленные ниже:

Python 3.6.2 Windows Installer Download

Выберите правильную версию в соответствии с вашим дистрибутивом Windows. Если вы не уверены, какой из них вам подходит,
Скорее всего, вы хотите загрузить версию исполняемого установщика Windows x86-64 для Windows.

Перейдите в каталог загрузок, щелкните установщик правой кнопкой мыши и выберите Запуск от имени администратора .

Run as administrator

Убедитесь, что вы отметили опцию Добавить Python 3.6 в PATH и щелкните опцию Установить сейчас .

Install Now

После завершения установки вы должны увидеть следующий экран:

Installation Successful

Теперь найдите программу Command Prompt и откройте ее:

Command Prompt

Чтобы проверить, все ли работает нормально, введите следующую команду:

  python --version  

В результате вы должны увидеть:

  Python 3.6,2  

python --version

В этом руководстве я буду использовать Ubuntu 16.04 в качестве примера. Ubuntu 16.04 уже поставляется с Python 2 (доступно
как python ) и Python 3 (доступен как python3 ). Мы можем протестировать установку, открыв Терминал
и проверка версий:

  питон - версия
Python 2.7.12

python3 --version
Python 3.5.2  

Test Python Version

Итак, все, что нам нужно сделать, это установить более новую версию Python 3.Но мы не хотим связываться с текущим Python 3.5.2, поскольку
ОС использует это. Мы просто собираемся установить Python 3.6.2 под именем python3.6 и позволить более старой версии
быть.

Если вы используете Ubuntu 16.04 или более старую версию, сначала добавьте следующий репозиторий:

  sudo add-apt-repository ppa: deadsnakes / ppa  

Если вы используете Ubuntu 16.10, 17.04 или 17.10, вам не нужно выполнять описанный выше шаг.

Теперь каждый выполняет следующие команды для установки последней версии Python 3:

  sudo apt-get update
sudo apt-get install python3.6  

Новая установка будет доступна под python3.6 , что нормально:

Test Python Version 3.6

Отлично, Python запущен и работает. Следующий шаг: виртуальные среды!

Установка Virtualenv

На следующем шаге мы собираемся использовать pip , инструмент для управления и установки пакетов Python, чтобы установить virtualenv .

Обратите внимание, что Homebrew уже установил для вас pip под именем pip3 для вашего Python 3.6.2 установка.

В Терминале выполните следующую команду:

  sudo pip3 установить virtualenv  

pip3 install virtualenv

В командной строке выполните следующую команду:

  pip install virtualenv  

pip install virtualenv

Сначала давайте установим pip для нашей версии Python 3.6.2:

  wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py  

Теперь мы можем установить virtualenv :

  судо пип3.6 установить virtualenv  

pip3.6 install virtualenv

До сих пор выполняемые нами установки были общесистемными. С этого момента все, что мы устанавливаем, включая Django
сам будет установлен внутри виртуальной среды.

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

Мне нравится создавать на моем персональном компьютере папку с именем Development .Затем я использую его для организации всех своих проектов и
веб-сайты. Но вы можете выполнить следующие шаги, создав каталоги там, где вам удобно.

Обычно я начинаю с создания новой папки с именем проекта внутри моей папки Development . Поскольку это происходит
чтобы стать нашим самым первым проектом, нам не нужно выбирать красивое название или что-то еще. На данный момент мы можем назвать это myproject .

  мкдир myproject
компакт-диск myproject  

Create myproject folder

Create myproject folder

Create myproject folder

Эта папка является каталогом более высокого уровня, в котором будут храниться все файлы и вещи, связанные с нашим проектом Django,
включая его виртуальную среду.

Итак, давайте начнем с создания нашей самой первой виртуальной среды и установки Django.

Внутри папки myproject :

  virtualenv venv -p python3  

Virtualenv

  virtualenv venv  

Virtualenv

  virtualenv venv -p python3.6  

Virtualenv

Наша виртуальная среда создана. Теперь, прежде чем мы начнем его использовать, нам нужно активировать:

Вы узнаете, что это сработало, если увидите перед командной строкой (venv) , например:

Virtualenv activate

Virtualenv activate

Virtualenv activate

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

Еще одна важная вещь заключается в том, что программа pip также уже установлена, и когда мы используем ее для установки
Пакет Python, как и Django, будет установлен внутри среды venv .

Обратите внимание, что когда у нас активирован venv , мы будем использовать команду python (вместо python3 ) для обращения к
Python 3.6.2 и просто pip (вместо pip3 ) для установки пакетов.

Обратите внимание, что когда у нас активирован venv , мы будем использовать команду python (вместо python3.6 ) для обращения к
Python 3.6.2 и просто pip (вместо pip3.6 ) для установки пакетов.

Кстати, чтобы отключить venv , выполните следующую команду:

  venv \ Scripts \ deactivate.bat  

Но давайте оставим его активированным для следующих шагов.

Установка Django 1.11.4

Это очень просто. Теперь, когда у нас активирован venv , выполните следующую команду для установки Django:

  pip install django  

pip install django

pip install django

pip install django

Теперь мы все настроены!

End Installation


Начало нового проекта

Чтобы запустить новый проект Django, выполните следующую команду:

  django-admin startproject myproject  

Утилита командной строки django-admin автоматически устанавливается вместе с Django.

После того, как мы запустим приведенную выше команду, она сгенерирует базовую структуру папок для проекта Django.

Сейчас наш каталог myproject выглядит так:

  myproject / <- папка более высокого уровня
 | - myproject / <- папка проекта django
 | | - мойпроект /
 | | | - __init__.py
 | | | - settings.py
 | | | - urls.py
 | | | - wsgi.py
 | + - manage.py
 + - venv / <- папка виртуальной среды  

Наша первоначальная структура проекта состоит из пяти файлов:

  • управлять.py : ярлык для использования утилиты командной строки django-admin . Он используется для выполнения команд управления
    связанные с нашим проектом. Мы будем использовать его для запуска сервера разработки, запуска тестов, создания миграций и многого другого.
  • __init__.py : этот пустой файл сообщает Python, что эта папка является пакетом Python.
  • settings.py : этот файл содержит всю конфигурацию проекта. Мы будем постоянно обращаться к этому файлу!
  • URL.py : этот файл отвечает за отображение маршрутов и путей в нашем проекте. Например, если вы хотите
    покажите что-нибудь в URL-адресе / about / , вы должны сначала сопоставить это здесь.
  • wsgi.py : этот файл представляет собой простой интерфейс шлюза, используемый для развертывания. Вам не о чем беспокоиться. Просто позволь
    это будет сейчас.

Django поставляется с простым установленным веб-сервером. Это очень удобно при разработке, поэтому нам не нужно
установите что-нибудь еще, чтобы запустить проект локально.Мы можем проверить это, выполнив команду:

  python manage.py runserver  

На данный момент вы можете игнорировать ошибки миграции; мы вернемся к этому позже.

Теперь откройте следующий URL-адрес в веб-браузере: http://127.0.0.1:8000 , и вы должны увидеть следующую страницу:

It worked!

Нажмите Control + C, чтобы остановить сервер разработки.

Нажмите CTRL + BREAK, чтобы остановить сервер разработки.

Нажмите Control + C, чтобы остановить сервер разработки.


Приложения Django

В философии Django есть два важных понятия:

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

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

Django Apps

Это способ организовать исходный код. Вначале не так просто определить, что такое приложение, а что
не. Как организовать код и тд. Но не беспокойтесь об этом прямо сейчас! Давайте сначала освоимся с
API Django и основы.

Хорошо! Итак, для иллюстрации давайте создадим простой веб-форум или дискуссионную доску.Чтобы создать наше первое приложение, перейдите в
каталог, в котором находится файл manage.py , и выполняет следующую команду:

  django-admin startappboards  

Обратите внимание, что на этот раз мы использовали команду startapp .

Это даст нам следующую структуру каталогов:

  myproject /
 | - мойпроект /
 | | - доски / <- наше новое приложение django!
 | | | - миграции /
 | | | + - __init__.py
 | | | - __init__.ру
 | | | - admin.py
 | | | - apps.py
 | | | - models.py
 | | | - tests.py
 | | + - views.py
 | | - мойпроект /
 | | | - __init__.py
 | | | - settings.py
 | | | - urls.py
 | | | - wsgi.py
 | + - manage.py
 + - venv /  

Итак, давайте сначала рассмотрим, что делает каждый файл:

  • миграций / : здесь Django хранит некоторые файлы, чтобы отслеживать изменения, которые вы создаете в файле models.py , поэтому
    для ведения базы данных и моделей .py синхронизирован.
  • admin.py : это файл конфигурации для встроенного приложения Django под названием Django Admin .
  • apps.py : это файл конфигурации самого приложения.
  • models.py : здесь мы определяем сущности нашего веб-приложения. Модели переводятся автоматически
    от Django в таблицы базы данных.
  • tests.py : этот файл используется для написания модульных тестов для приложения.
  • views.py : это файл, в котором мы обрабатываем цикл запроса / ответа нашего веб-приложения.

Теперь, когда мы создали наше первое приложение, давайте настроим наш проект так, чтобы использовало его .

Для этого откройте файл settings.py и попробуйте найти переменную INSTALLED_APPS :

settings.py

  INSTALLED_APPS = [
    'Django.contrib.admin',
    'Django.contrib.auth',
    «Джанго.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]  

Как видите, в Django уже установлено 6 встроенных приложений. Они предлагают общие функции, которые большинство веб-
нужны приложения, такие как аутентификация, сеансы, управление статическими файлами (изображения, javascripts, css и т. д.) и так далее.

Мы будем изучать эти приложения по мере продвижения в этой серии руководств. А пока оставим их и просто добавим наши досок
app в список из INSTALLED_APPS :

  INSTALLED_APPS = [
    «Джанго.contrib.admin',
    'Django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    «доска»,
]  

Используя аналогию с квадратом и кругами из предыдущего комикса, желтый круг будет нашим приложением досок, и
django.contrib.admin , django.contrib.auth и т. д. будут красными кружками.


Привет, мир!

Давайте напишем наше первое представление .Мы рассмотрим это более подробно в следующем уроке. Но пока давайте просто
поэкспериментируйте, как выглядит создание новой страницы с помощью Django.

Откройте файл views.py в приложении Board и добавьте следующий код:

views.py

  из django.http import HttpResponse

def home (запрос):
    return HttpResponse ('Hello, World!')  

Представления - это функции Python, которые получают объект HttpRequest и возвращают объект HttpResponse .Получите запрос в качестве параметра и в результате вернет ответ . Об этом нужно помнить!

Итак, здесь мы определили простое представление с именем home , которое просто возвращает сообщение Hello, World! .

Теперь мы должны сообщить Django , когда будет обслуживать это представление. Это делается в файле urls.py :

urls.py

  из django.conf.urls импортировать url
из django.домашняя страница / $ ', views.home, name =' home ') . 

Посмотрим, что получится:

  python manage.py runserver  

В веб-браузере откройте http://127.0.0.1:8000 URL:

Hello, World!

Вот и все! Вы только что создали свое первое представление.


Выводы

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

Надеюсь, вам понравилась первая часть! Вторая часть выйдет на следующей неделе, 11 сентября 2017 года. Она будет примерно
модели, представления, шаблоны и URL-адреса. Мы вместе исследуем все основы Django! Если вы хотите получить
уведомление, когда вторая часть отсутствует, вы можете
Подпишитесь на нашу почтовую рассылку.

Чтобы мы могли оставаться на одной странице, я сделал исходный код доступным на GitHub.Текущее состояние проекта может
можно найти под тегом выпуска v0.1-lw . Ссылка ниже приведет вас в нужное место:

https://github.com/sibtc/django-beginners-guide/tree/v0.1-lw


,

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *