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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2024

Просмотров: 238

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Установка Django После запуска virtualenv ты можешь установить Django.Перед этим мы должны удостовериться, что у тебя установлена последняя версия pip — программы, которую мы используем для установки Django.command-line(myvenv) $ python3 -m pip install --upgrade pip Установка библиотек через указание требований Файл с требованиями (requirements) хранит список зависимостей, которые нужно установить с помощью pip install:Для начала создай файл requirements.txt внутри директории djangogirls/, используя текстовый редактор, который ты установила ранее. Просто создай в редакторе новый файл, а затем сохрани его под именем requirements.txt в директории djangogirls/. После этого твоя директория будет выглядеть так:djangogirls└───requirements.txtВ файл djangogirls/requirements.txt нужно добавить такой текст:djangogirls/requirements.txtDjango=3.2.10Теперь выполни команду pip install -r requirements.txt, чтобы установить Django.command-line(myvenv) $ pip install -r requirements.txtCollecting Django=3.2.10 (from -r requirements.txt (line 1)) Downloading Django-3.2.10-py3-none-any.whl (7.1MB)Installing collected packages: DjangoSuccessfully installed Django-3.2.10Установка_Django:_Windows'>Установка Django: WindowsЕсли при запуске pip в Windows ты получаешь сообщение об ошибке, проверь, что путь к директории с проектом не содержит пробелов или специальных символов (C:\Users\User Name\djangogirls). Если проблема в этом, то, пожалуйста, перенеси свой проект в другое место, адрес которого не будет содержать пробелов и специальных символов (предлагаем C:\djangogirls). Создай новое виртуальное окружение в новой директории, после этого удали старое и попробуй запустить команды выше заново (перемещение виртуального окружения не сработает, поскольку в нём используются абсолютные пути).Установка Django: Windows 8 и Windows 10При попытке установки Django твоя командная строка может зависнуть. Если это произошло, вместо приведённой выше команды используй:command-lineC:\Users\Name\djangogirls> python -m pip install -r requirements.txtУстановка GitGit — это «система управления версиями», используемая множеством программистов. Эта программа отслеживает изменения, происходящие с файлами, чтобы впоследствии можно было восстановить состояние кода на нужный момент времени. Это немного похоже на функцию отслеживания изменений в Microsoft Word, но куда мощнее.Установка GitWindows Настройка Chromebook Примечание Если ты уже прошла раздел Установка, не нужно делать это снова – можно перейти прямо к Введению в PythonЕсли ты не используешь Chromebook, можешь пропустить эту секцию. В противном случае процесс установки будет немного другим, и тебе нужно будет пройти только эту инструкцию по установке. Облачная IDE (PaizaCloud Cloud IDE, AWS Cloud9) Облачная IDE — это инструмент, который предоставляет тебе редактор кода и доступ к компьютеру, запущенному в интернете. На этом удалённом компьютере ты можешь устанавливать, создавать и запускать программы. На время прохождения этого руководства облачная IDE будет вести себя как локальный компьютер. Ты будешь так же, как и другие участницы с OS X, Ubuntu или Windows, выполнять команды в командной строке, но она будет подключена к компьютеру облачной IDE, который находится где-то в другом месте.Ниже ты увидишь инструкции для настройки облачных IDE (PaizaCloud Cloud IDE, AWS Cloud9). Ты можешь выбрать одну из них и выполнить соответствующие действия. PaizaCloud Cloud IDE Перейди на сайт PaizaCloud Cloud IDE Войди в свой аккаунт Нажми New Server Нажми кнопку Terminal (в левой части окна) Теперь ты должна увидеть интерфейс с боковой панелью, кнопки расположены слева. Нажми кнопку "Terminal", чтобы открыть командную строку. Ты увидишь приглашение командной строки:Terminal$Командная строка в PaizaCloud Cloud IDE готова к твоим командам. Ты можешь изменить размер этого окна, чтобы сделать его немного больше. AWS Cloud9 Перейди на сайт AWS Cloud9 Войди в свой аккаунт Нажми Create Environment Теперь ты должна увидеть интерфейс с боковой панелью, большим основным окном с текстом, а также маленьким окошком снизу, которое выглядит как-то так:bashyourusername:/workspace $Эта область внизу и есть твоя командная строка. Ты можешь использовать её, чтобы давать команды удалённому компьютеру в Cloud9. Ты можешь изменить размер этого окна, чтобы сделать его немного больше. Виртуальное окружение Виртуальное окружение (его также называют virtualenv) похоже на личную коробку, куда мы можем сложить полезный код для проекта, над которым работаем. Виртуальные окружения нужны нам, чтобы держать отдельно разные кусочки кода для наших проектов — так они не перемешаются между разными проектами.В твоей командной строке в нижней части интерфейса Cloud 9 запусти следующие команды:Cloud 9sudo apt updatesudo apt install python3.6-venvЕсли они не сработают, попроси своего тренера помочь.Далее запусти:Cloud 9mkdir djangogirlscd djangogirlspython3.6 -mvenv myvenvsource myvenv/bin/activatepip install django=3.2.10(обрати внимание, что в последней строчке мы используем сочетание тильды и знака равенства: 

Как работает Интернет

Знакомство с командной строкой Для тех, кто проходит руководство дома: о материале этой главы рассказывает видео Ваш новый друг — командная строка.Вот это да! Всего через несколько минут ты напишешь свою первую строку кода! :)Позволь представить нашего первого нового друга: командную строку!Следующие шаги покажут, как использовать чёрное окно, которым пользуются все хакеры. В начале оно может показаться немного пугающим, но, на самом деле это просто окно, которое ждет от тебя команды.Примечание Пожалуйста, обрати внимание, что в этом руководстве мы используем термины «каталог» и «папка» взаимозаменяемо: эти слова обозначают одно и то же. Что такое командная строка? Окно, которое обычно называют командной строкой или интерфейсом командной строки (англ. CLI, Command Line Interface), является текстовым приложением для просмотра, обработки и манипулирования файлами на вашем компьютере. Она делает то же, что и Проводник в Windows или Finder в Mac OS X, но у неё нет графического интерфейса. Другими названиями для командной строки являются: cmd, CLI, prompt, консоль или терминал. Открываем интерфейс командной строки Для того, чтобы начать экспериментировать, нам нужно сначала открыть интерфейс командной строки.WindowsВ зависимости от твоей версии Windows и того, какая у тебя клавиатура, одно из следующих действий откроет окно командной строки (возможно, придётся немного поэкспериментировать, но все варианты пробовать необязательно): Перейди в меню Пуск (или на экран Пуск), в строке поиска набери "Командная строка". Перейди в меню Пуск → Windows → Командная строка. Перейди в меню Пуск → Все программы → Служебные → Командная строка. Перейди на экран Пуск, наведи мышь на нижний левый угол экрана и нажми на стрелочку вниз, которая появится там. (Если у тебя тачскрин, листни пальцем снизу вверх.) Откроется страница "Приложения". Выбери пункт "Командная строка" в разделе "Windows". Удерживая клавишу Windows на клавиатуре, нажми X. В появившемся меню выбери пункт "Командная строка". Удерживая клавишу Windows, нажми R, чтобы появилось окно "Выполнить". Набери в строке cmd и нажми OK. В какой-то момент тебе понадобятся два окна командной строки одновременно. Однако в некоторых версиях Windows, если ты попытаешься запустить вторую командную строку, когда одна уже запущена тем же способом, ты вместо этого попадёшь в уже открытое окно командной строки. Попробуй у себя на компьютере и посмотри, что будет! Если у тебя получается открыть только одно окно командной строки, попробуй какой-нибудь другой из вышеприведённых способов в списке. По крайней мере один из них сможет открыть новое окно командной строки.OS XLinux Командная строка Перед тобой должно появиться белое или чёрное окошко. Оно ожидает, когда ты введёшь команду.OS X и LinuxWindowsПеред каждой твоей командой будет стоять знак $ или > и пробел. Но тебе не нужно их печатать! Компьютер уже сделал это за тебя. :)Небольшое примечание: перед курсором командной строки может быть написано что-то вроде C:\Users\ola> или Olas-MacBook-Air:

Твоя первая команда (УРА!)

Основы

Подведём итоги

Готова продолжить?

Введение в Python

Консоль Python

Твоя первая команда Python!

Строки

Ошибки

Переменные

Функция print

Списки

Словари

Сравнения

Логические значения

Сохраняй!

If...elif...else

Комментарии

Твоя собственная функция!

Циклы

Установка Django

Виртуальное окружение

Работаем с virtualenv

Установка Django После запуска virtualenv ты можешь установить Django.Перед этим мы должны удостовериться, что у тебя установлена последняя версия pip — программы, которую мы используем для установки Django.command-line(myvenv) $ python3 -m pip install --upgrade pip Установка библиотек через указание требований Файл с требованиями (requirements) хранит список зависимостей, которые нужно установить с помощью pip install:Для начала создай файл requirements.txt внутри директории djangogirls/, используя текстовый редактор, который ты установила ранее. Просто создай в редакторе новый файл, а затем сохрани его под именем requirements.txt в директории djangogirls/. После этого твоя директория будет выглядеть так:djangogirls└───requirements.txtВ файл djangogirls/requirements.txt нужно добавить такой текст:djangogirls/requirements.txtDjango=3.2.10Теперь выполни команду pip install -r requirements.txt, чтобы установить Django.command-line(myvenv) $ pip install -r requirements.txtCollecting Django

Твой первый проект на Django!

Изменяем настройки Давай внесём изменения в mysite/settings.py. Открой файл в текстовом редакторе, который ты выбрала ранее.Примечание: помни, что settings.py — самый обычный файл. Ты можешь открыть его из своего редактора кода, используя меню «Файл -> Открыть». При этом ты увидишь обычное окно, в котором ты можешь перейти к своему файлу settings.py и выбрать его. Либо ты можешь открыть этот файл, перейдя в директорию проекта djangogirls на твоём рабочем столе и щёлкнув по нему правой кнопкой мыши; затем выбери свой редактор кода из предложенного списка. Важно выбрать именно редактор, поскольку у тебя могут быть установлены программы, которые откроют наш файл, но не позволят его изменить.Было бы неплохо установить корректный часовой пояс на нашем сайте. Перейди к списку часовых поясов википедии и скопируй название своего часового пояса (TZ) (например, Europe/Moscow).В файле settings.py найди строку, содержащую TIME_ZONE, и измени её в соответствии со своим часовым поясом:mysite/settings.pyTIME_ZONE = 'Europe/Moscow'Код языка состоит из сокращённого названия языка, например en для английского или ru для русского, и кода страны, например, ru для России или ch для Швейцарии. Тебе понадобится эта настройка, если ты хочешь, чтобы все встроенные кнопки и уведомления от Django были на твоём языке. Таким образом, надпись на кнопке «Cancel» будет переведена на заданный тобой язык. Django поставляется с большим набором готовых переводов.Измени язык, отредактировав следующую строку:mysite/settings.pyLANGUAGE_CODE = 'ru-ru'Нам также необходимо добавить в настройки информацию о расположении статических файлов (мы познакомимся со статическими файлами и CSS в следующих главах). Спустись в конец файла и после переменной STATIC_URL добавь новую — STATIC_ROOT:mysite/settings.pySTATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static')Когда наcтройка DEBUG имеет значение True, а настройка ALLOWED_HOSTS пуста, имя хост твоего веб-сайта сверяется со списком ['localhost', '127.0.0.1', '[::1]']. Ни одно из значений не будет соответствовать имени хоста на PythonAnywhere при публикации нашего приложения, поэтому нам необходимо изменить следующую настройку:mysite/settings.pyALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']Примечание: В случае если вы используете Chromebook, добавьте следующую строку в конец файла settings.py: MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' Настройка базы данных Существует множество различных баз данных, которые могут хранить данные для твоего сайта. Мы будем использовать стандартную — sqlite3.Она уже выбрана по умолчанию в файле mysite/settings.py:mysite/settings.pyDATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }}Чтобы создать базу данных для нашего блога, набери в командной строке следующее: python manage.py migrate (мы должны быть в директории djangogirls, где расположен файл manage.py). Если всё прошло успешно, то ты увидишь следующий результат:command-line(myvenv)

Запуск веб-сервера Ты должна быть в директории, где расположен файл manage.py (в нашем случае — djangogirls). Запустим веб-сервер из командной строки: python manage.py runserver:command-line(myvenv) /djangogirls$ python manage.py runserverЕсли ты работаешь в Windows, и команда падает с ошибкой UnicodeDecodeError, используй вместо неё другую:command-line(myvenv)

Модели Django

Объекты

Модель в Django Зная, что представляет из себя объект, мы можем создать модель Django для записи в блоге.Модель в Django — это объект определённого свойства: он хранится в базе данных. База данных представляет собой совокупность различных данных. Это то место, где ты будешь хранить информацию о своих пользователях, записях в блоге и т.д. Мы будем использовать базу данных SQLite для хранения информации. Это стандартная база данных в Django — её сейчас вполне хватит для наших нужд.Ты можешь представить модель в базе данных как электронную таблицу с колонками (полями) и строками (данными). Создание приложения Для аккуратности мы создадим отдельное приложение в нашем проекте. Очень удобно иметь хорошо организованное рабочее место с самого начала. Для создания приложения нам понадобится набрать следующую инструкцию в командной строке (из директории djangogirls, где находится файл manage.py):Mac OS X и Linux:(myvenv) /djangogirls$ python manage.py startapp blogWindows:(myvenv) C:\Users\Name\djangogirls> python manage.py startapp blogОбрати внимание, что в нашем проекте появилась новая папка blog, которая содержит некоторые файлы. Таким образом, структура нашего проекта будет выглядеть так:djangogirls├── blog│ ├── __init__.py│ ├── admin.py│ ├── apps.py│ ├── migrations│ │ └── __init__.py│ ├── models.py│ ├── tests.py│ └── views.py├── db.sqlite3├── manage.py└── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.pyПосле того, как приложение создано, нам нужно сообщить Django, что теперь он должен его использовать. Мы сделаем это с помощью файла mysite/settings.py. Нам нужно найти INSTALLED_APPS и добавить к списку 'blog', прямо перед ]. Конечный результат должен выглядеть следующим образом:mysite/settings.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog',] Создание модели записи в блоге В файле blog/models.py мы определяем все Модели — модель записи для блога также пойдёт сюда.Открой файл blog/models.py, удали весь текст и вставь на его место следующий код:blog/models.pyfrom django.conf import settingsfrom django.db import modelsfrom django.utils import timezoneclass Post(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField(default=timezone.now) published_date = models.DateTimeField(blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return self.titleУбедись, что использовала два символа нижнего подчёркивания (_) с обеих сторон от метода str. Это соглашение часто используется при программировании на Python, и иногда его называют "dunder" (сокращение от англ. "double-underscore").Смотрится страшно, да? Но не волнуйся, мы объясним, что значит каждая строка кода!Строки, начинающиеся с from или import, открывают доступ к коду из других файлов. Так что вместо того, чтобы копировать и вставлять один и тот же код во все файлы, ты можешь сослаться на него при помощи from ... import ....class Post(models.Model): — эта строка определяет нашу модель (объект). class — это специальное ключевое слово для определения объектов. Post — это имя нашей модели, мы можем поменять его при желании (специальные знаки и пробелы использовать нельзя). Всегда начинай имена классов с прописной буквы. models.Model означает, что объект Post является моделью Django, так Django поймет, что он должен сохранить его в базу данных. Дальше мы задаем свойства, о которых уже говорили: title, text, created_date, published_date и author. Чтобы это сделать, нам нужно определиться с типом полей (это текст? число? дата? ссылка на другой объект? например, на пользователя?). models.CharField — так мы определяем текстовое поле с ограничением на количество символов. models.TextField — так определяется поле для неограниченно длинного текста. Выглядит подходящим для содержимого поста, верно? models.DateTimeField — дата и время. models.ForeignKey — ссылка на другую модель. Мы не будем объяснять каждую запятую, поскольку на это уйдет слишком много времени. Ознакомься с официальной документаций Django: если хочешь узнать больше о полях моделей и о том, как определять разные объекты, то эта ссылка может помочь: https://docs.djangoproject.com/en/1.11/ref/models/fields/#field-types.Что насчёт def publish(self):? Это как раз метод публикации для записи, о котором мы говорили. def означает, что создаётся функция/метод, а publish — это название этого метода. Можно изменить имя метода, если хочешь. Существует правило для имён функций: нужно использовать строчные буквы, а пробелы заменять на подчёркивания. Например, метод, вычисляющий среднюю цену, может называться calculate_average_price.Методы часто возвращают что-то. Например, метод __str__. В нашем случае после вызова метода __str__() мы получим текст (строку) с заголовком записи.Также обрати внимание, что оба метода def publish(self): и def __str__(self): внутри класса имеют дополнительный отступ. Поскольку в Python важны отступы, нам необходимо использовать их для методов внутри класса — иначе методы не будут принадлежать к классу, и при запуске программы может получиться что-то неожиданное.Если тема моделей тебе до сих пор непонятна — не стесняйся обратиться к тренеру! Мы знаем, что она действительно сложна, особенно когда ты изучаешь параллельно объекты и функции. Но мы надеемся, что всё это больше не кажется тебе магией! Создаём таблицы моделей в базе данных Последним шагом будет добавление нашей модели в базу данных. Сначала мы должны дать Django знать, что сделали изменения в нашей модели (мы её только что создали!). Набери python manage.py makemigrations blog. Должно получиться примерно так:command-line(myvenv) /djangogirls$ python manage.py makemigrations blogMigrations for 'blog': blog/migrations/0001_initial.py: - Create model PostПримечание: не забудь сохранить отредактированные файлы. Иначе твой компьютер выполнит команду с их предыдущей версией, и могут появиться неожиданные ошибки.Django создал для нас файл с миграцией для базы данных. Набери python manage.py migrate blog, результат должен быть следующим:command-line(myvenv)

Администрирование Django Чтобы добавлять, редактировать и удалять записи, для которых мы только что создали модель, мы используем панель управления администратора Django.Давай откроем файл blog/admin.py и заменим его содержимое на:blog/admin.pyfrom django.contrib import adminfrom .models import Postadmin.site.register(Post)Как ты можешь заметить, мы импортировали (включили) модель Post, которую определили в предыдущей главе. Чтобы наша модель стала доступна на странице администрирования, нам нужно зарегистрировать её при помощи admin.site.register(Post).Хорошо, теперь нам нужно взглянуть на модель Post. Не забудь запустить веб-сервер командой python manage.py runserver. Перейди в браузер и набери адрес http://127.0.0.1:8000/admin/. Ты увидишь страницу авторизации: Чтобы залогиниться, тебе сначала нужно создать суперпользователя (англ. superuser) — пользователя, который имеет полный доступ к управлению сайтом. Вернись к командной строке, набери python manage.py createsuperuser, и нажми Enter.Не забудь: чтобы выполнять команды во время работы сервера, открой новое окно терминала и активируй в нём виртуальное окружение. Мы описывали ввод новых команд в разделе Запуск веб-сервера главы Твой первый проект на Django!.При появлении запроса введи имя пользователя (строчными буквами, без пробелов), адрес электронной почты и пароль. Не беспокойся, если пароль не появляется на экране по мере ввода, так и задумано. Просто напечатай его и нажми Enter, чтобы продолжить. Результат должен выглядеть следующим образом (имя пользователя и почта, соответственно, будут твоими):command-line(myvenv) /djangogirls$ python manage.py createsuperuserUsername: adminEmail address: admin@admin.comPassword:Password (again):Superuser created successfully.Вернись в браузер и войди в систему при помощи имени пользователя и пароля, которые ты только что выбрала. Ты должна попасть в панель управления Django. Перейди к разделу Posts и немного поэкспериментируй с ним. Добавь пять или шесть постов. Не беспокойся о содержании — можешь просто скопировать и вставить текст из этого учебника, чтобы сэкономить время :)Убедись, что выбрала для двух или трёх записей (но не больше) дату публикации. Это пригодится позднее. Если ты хочешь узнать больше об администрировании Django, то ознакомься с этим разделом официальной документации: https://docs.djangoproject.com/en/1.11/ref/contrib/admin/.Сейчас, вероятно, подходящий момент, чтобы порадовать себя кружечкой кофе (или чая), а также съесть чего-нибудь для восполнения энергии. Ты только что создала свою первую модель Django и заслужила перерыв!Публикация в Интернете!Примечание: Эта глава может показаться сложной. Будь упорна, развертывание сайта на сервере является важной частью веб-разработки. Данная глава намеренно расположена в середине учебника для того, чтобы твой наставник смог помочь с таким мудреным процессом, как публикация сайта. Так ты сможешь самостоятельно закончить все главы, даже если время будет поджимать.До настоящего момента твой сайт был доступен только для локального просмотра, теперь же ты узнаешь, как развернуть его на удалённом сервере! Развертывание (deploy) — это процесс публикации приложения в интернете, чтобы люди могли наконец увидеть твое творение :)Как ты уже знаешь, веб-сайт должен располагаться на сервере. Есть много компаний, предоставляющих сервера в интернете. Мы воспользуемся услугами одной из них, с довольно простым процессом публикации: PythonAnywhere. PythonAnywhere бесплатен для маленьких приложений с небольшим числом посетителей, и этого будет для нас более чем достаточно.Другим внешним сервисом, которым мы воспользуемся, будет GitHub — сервис хостинга кода. Существуют и другие похожие сервисы, но практически у каждого программиста есть GitHub аккаунт, теперь будет и у тебя!В итоге твой код будет в трёх местах. На локальном компьютере ты будешь заниматься разработкой и тестированием. Когда результат тебя устроит, ты загрузишь свою программу на GitHub. А твой сайт будет на PythonAnywhere, и ты сможешь обновлять его, просто загружая новую версию кода с GitHub.GitПримечание: если ты уже выполнила установку, незачем повторять её вновь — можешь сразу переходить к следующему разделу и начать создание собственного Git-репозитория.Git — это «система управления версиями», используемая множеством программистов. Эта программа отслеживает изменения, происходящие с файлами, чтобы впоследствии можно было восстановить состояние кода на нужный момент времени. Это немного похоже на функцию отслеживания изменений в Microsoft Word, но куда мощнее.Установка GitWindowsТы можешь загрузить Git с официального сайта git-scm.com. Ты можешь нажимать "дальше, дальше, дальше" на всех этапах установки за исключением одного: на пятом шаге, который называется "Adjusting your PATH environment" (Настройка системной переменной Path), выбери "Use Git and optional Unix tools from the Windows Command Prompt" (Запуск Git и соответствующих Unix утилит через командную строку Windows, нижняя опция). Все остальные настройки можно оставить по умолчанию. Также неплохо будет выбрать опцию "Checkout Windows-style, commit Unix-style line endings".После окончания установки не забудь перезапустить командную строку или PowerShell.OS XDebian и UbuntuFedoraopenSUSEСоздаём Git-репозиторийGit отслеживает изменения определенного набора файлов, который называется репозиторием (сокращенно "репо"). Давайте создадим такой для нашего проекта. Открой консоль и запусти эти команды в папке djangogirls:Примечание: проверь текущий рабочий каталог с помощью команд pwd (OSX/Linux) или cd (Windows) перед инициализацией нового репозитория. Ты должна находиться в директории djangogirls.command-line$ git initInitialized empty Git repository in /djangogirls/.git/$ git config --global user.name "Your Name"$ git config --global user.email you@example.comИнициализировать git-репозиторий придется только один раз за проект (и тебе больше не придется вводить имя пользователя и адрес электронной почты).Git будет отслеживать изменения всех файлов и каталогов в заданной директории, однако некоторые из них мы предпочли бы игнорировать. Для этого нам нужно создать файл .gitignore в корневом каталоге репозитория. Открой редактор и создай новый файл со следующим содержанием:.gitignore*.pyc*

URL-адреса Django

Что такое URL-адрес?

Как URL-адреса работают в Django?

Твой первый URL-адрес в Django!

blog.urls

Представления в Django – время создавать!

blog/views.py

Введение в HTML

Что такое HTML?

Твой первый шаблон!

Head и body



PythonAnywhere command-line

$ pip3.6 install --user pythonanywhere

Когда ты это запустишь, в консоли будет печататься лог установки. Он начнётся с чего-то вроде Collecting pythonanywhere, а последней будет строчка Successfully installed (...) pythonanywhere- (...).

Теперь запустим эту вспомогательную утилиту, которую ты только что установила. Она настроит твоё приложение, скачав его код с GitHub. Напечатай следующее в консоли PythonAnywhere (не забудь использовать свой ник на GitHub вместо , URL в консольной команде должен совпадать с URL, используемым в команде clone):

PythonAnywhere command-line

$ pa_autoconfigure_django.py https://github.com//my-first-blog.git

Утилита будет печатать в консоль, что она делает:

  • Скачивает твой код с GitHub

  • Создаёт виртуальное окружение на PythonAnywhere, такое же, как на твоём компьютере

  • Обновляет твой файл настроек с настройками деплоя

  • Создаёт базу данных на PythonAnywhere, используя команду manage.py migrate

  • Разбирается с твоими статическими файлами (о них будет дальше)

  • Настраивает PythonAnywhere так, чтобы твоё приложение было доступно в интернете

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

Главное, на что нужно обратить внимание сейчас, — это то, что твоя база данных на PythonAnywhere никак не связана с базой данных на твоём компьютере. Поэтому там будут разные посты и разные аккаунты администраторов. Как следствие, для базы на PythonAnywhere необходимо создать аккаунт администратора так же, как ты это делала у себя локально с помощью команды createsuperuser. На PythonAnywhere заранее активировано виртуальное окружение, так что всё, что тебе нужно сделать — это запустить в консоли PythonAnywhere команду:

PythonAnywhere command-line

(ola.pythonanywhere.com) $ python manage.py createsuperuser

Введи параметры для своего пользователя-админа. Лучше всего использовать те же самые данные, что и у тебя на локальном компьютере, чтобы избежать путаницы, если ты конечно не хочешь сделать пароль на сервере PythonAnywhere более надёжным.

Сейчас, если хочешь, посмотри на файлы на PythonAnywhere с помощью команды ls
:

PythonAnywhere command-line

(ola.pythonanywhere.com) $ ls

blog db.sqlite3 manage.py mysite requirements.txt static

(ola.pythonanywhere.com) $ ls blog/

__init__.py __pycache__ admin.py apps.py migrations models.py

tests.py views.py

Ты также можешь заглянуть на страницу «Files» и посмотреть, что лежит на сервере, используя встроенный в PythonAnywhere файловый менеджер. (Со страницы «Console» ты можешь попасть на другие страницы PythonAnywhere, используя кнопку меню в правом верхнем углу. Находясь на какой-либо странице, ты можешь найти ссылки на другие вверху.)

Ты в сети!

Ура, твой сайт теперь доступен всем в интернете! Ты можешь найти ссылку на него на странице «Web» на PythonAnywhere. Этой ссылкой можно делиться с кем хочешь :)

Примечание Это туториал для начинающих, поэтому публикуя сайт, мы использовали несколько хаков, которые не очень хороши с точки зрения безопасности. Если ты захочешь сделать что-то на основе этого проекта или начать новый, прочитай Django deployment checklist для советов по безопасности на твоём сайте.

Советы по отладке

Если ты столкнулась с ошибкой, запуская скрипт pa_autoconfigure_django.py, вот несколько частых причин:

  • Ты забыла создать PythonAnywhere API токен

  • Ошибка в GitHub URL

  • Если ты видишь сообщение "Could not find your settings.py" (невозможно найти settings.py), это может быть вызвано тем, что ты не добавила все файлы в Git или не загрузила их на GitHub. Перечитай Git-секцию выше

  • Если ты до этого уже регистрировала аккаунт на PythonAnywhere и наткнулась на ошибку collectstatic, вполне вероятно, что у тебя устаревшая версия SQLite (например, 3.8.2). В этом случае зарегистрируй новый аккаунт и попробуй ещё раз ввести команды, упомянутые в разделе Настройка блога на PythonAnywhere.

Если ты столкнулась с ошибкой при попытке открыть свой сайт, первое место, где нужно искать отладочную информацию — твой error log. Ты найдёшь ссылку на него на странице "Web" на PythonAnywhere. Глянь, есть ли там какие-либо сообщения об ошибках; самые новые находятся внизу.

Ещё есть общие советы по отладке на PythonAnywhere.

И помни, твой тренер здесь, чтобы помочь!

Ты в сети!

Стандартная страница твоего сайта должна включать приветствие "It worked!", точно так же как было на локальном компьютере. Попробуй добавить 

/admin/ к концу адреса сайта, и перейдёшь к панели администратора сайта. Войди под своим именем и паролем и увидишь форму для добавления новых записей в блог.

После того, как создашь несколько записей, ты можешь вернуться к своей локальной версии приложения (а не на PythonAnywhere). С этого момента для внесения изменений тебе нужно работать в своей локальной версии. Это обычный подход в веб-программировании: изменять код локально, загружать изменения на GitHub, а затем подтягивать изменения на сервер с сайтом. Такой подход позволяет тебе работать и экспериментировать, не рискуя сломать свой сайт. Круто, правда?

Ты заслужила огромную похвалу! Развёртывание сервера — одна из самых каверзных частей веб-разработки, и нередко уходит несколько дней, прежде чем заставишь всё работать. А у нас уже есть работающий в сети веб-сайт, вот так вот!

URL-адреса Django


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

Что такое URL-адрес?


URL — это просто адрес в интернете. Ты можешь увидеть URL каждый раз, когда посещаешь веб-сайт — он отображается в адресной строке твоего браузера (да, 127.0.0.1:8000 — это URL-адрес! И https://djangogirls.org — тоже URL):



Любая страница в Интернете нуждается в собственном URL-адресе. Таким образом ваше приложение точно знает, что показать пользователю, который открывает конкретный URL-адрес. В Django мы используем так называемый URLconf (англ. URL configuration, конфигурация URL). URLconf — это набор шаблонов, которые Django попробует сравнить с полученным URL, чтобы выбрать правильный метод для отображения (view).

Как URL-адреса работают в Django?


Давай откроем файл mysite/urls.py в нашем редакторе и посмотрим, как он выглядит:

mysite/urls.py

"""mysite URL Configuration
[...]

"""

from django.contrib import admin

from django.urls import path
urlpatterns = [

path('admin/', admin.site.urls),

]

Как можешь заметить, Django уже кое-что разместил здесь для нас.

Строки, расположенные между тройными кавычками (''' или """), называются docstrings — ты можешь добавить их в начале файла, класса или метода для описания их функциональности. Python будет их игнорировать при запуске приложения.

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

mysite/urls.py

path('admin/', admin.site.urls),

Таким образом, любому URL-адресу, начинающемуся с 
admin/, Django будет находить соответствующее view (представление). В этом случае мы охватываем большое количество различных URL-адресов, которые явно не прописаны в этом маленьком файле — так он становится более аккуратным и удобочитаемым.

Твой первый URL-адрес в Django!


Пришло время создать твой первый URL-адрес! Мы хотим, чтобы 'http://127.0.0.1:8000/' возвращал домашнюю страничку нашего блога со списком записей в нём.

Мы также хотим сохранить файл mysite/urls.py в максимально аккуратном виде, так что мы импортируем URL-адреса для нашего приложения blog в mysite/urls.py.

Вперёд, добавь строку для импорта blog.urls. Обрати внимание, что здесь мы используем функцию include, поэтому тебе придется импортировать её в строке from django.urls....

Файл mysite/urls.py должен выглядеть следующим образом:

mysite/urls.py

from django.contrib import admin

from django.urls import path, include
urlpatterns = [

path('admin/', admin.site.urls),

path('', include('blog.urls')),

]

Django теперь будет перенаправлять все запросы 'http://127.0.0.1:8000/' к blog.urls и искать там дальнейшие инструкции.