Поиск по сайту:

Как включить и подключить интерфейс администратора Django


Введение

Если вы следили за серией Django Development, вы запустили приложение Django, подключили свое приложение к MySQL и создали модели базы данных для данных Posts и Comments. в веб-приложении блога.

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

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

Предпосылки

Это руководство является частью серии Django Development и продолжением этой серии.

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

  • У вас установлена Django версии 4 или выше.
  • Вы подключили приложение Django к базе данных. Мы используем MySQL, и вы можете установить это соединение, следуя второй части серии Django «Как создать приложение Django и подключить его к базе данных».
  • Вы работаете с операционной системой на основе Unix, желательно с облачным сервером Ubuntu 22.04, так как это система, на которой мы тестировали. Если вы хотите настроить Django в аналогичной среде, обратитесь к нашему руководству «Как установить Django и настроить среду разработки в Ubuntu 22.04».

Поскольку это руководство в основном посвящено интерфейсу администратора Django, вы сможете следовать ему, даже если у вас несколько иная настройка.

Шаг 1 — Включить администратора

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

  1. cd ~/my_blog_app
  2. . env/bin/activate

Чтобы включить администратора Django, нам нужно убедиться, что наше приложение является частью списка INSTALLED_APPS в файле settings.py.

Перейдите в каталог файла настроек:

  1. cd ~/my_blog_app/blog/blog/

Отсюда откройте файл settings.py. Если его еще нет, добавьте django.contrib.admin в список INSTALLED_APPS с помощью текстового редактора, такого как nano.

  1. nano settings.py

Раздел файла INSTALLED_APPS должен быть похож на файл ниже. Наше приложение в списке находится вверху, blogsite, но если вы создали приложение с другим именем, убедитесь, что это приложение указано в этом файле, как показано.

...
# Application definition
INSTALLED_APPS = [
    'blogsite',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

Обязательно сохраните и закройте файл, если вы вносили изменения. В nano это можно сделать, набрав CTRL и X, затем Y и затем ENTER.

Теперь мы можем открыть файл urls.py снова с помощью nano или другого текстового редактора.

  1. nano urls.py

Под комментарием вверху файл должен выглядеть следующим образом.

…
"""
from django.contrib import admin
from django.urls import path

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

Если файл отличается от приведенного выше, скопируйте и вставьте приведенные выше строки в файл urls.py.

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

Шаг 2. Убедитесь, что администратор является установленным приложением

Затем мы должны перенести модели в базу данных, чтобы она подхватывала недавно добавленные модели администратора.

Перейдите в каталог, в котором находится файл manage.py.

  1. cd ~/my_blog_app/blog

Не забывайте запускать команду migrate всякий раз, когда вы вносите какие-либо изменения в models, например.

  1. python manage.py migrate

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

Output
Operations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: No migrations to apply.

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

Теперь мы можем запустить сервер, выполнив следующую команду. Вы можете заменить 0.0.0.0 своим IP-адресом.

  1. python manage.py runserver 0.0.0.0:8000

Затем перейдите по URL-адресу панели администратора в браузере по вашему выбору. Обязательно введите IP-адрес вашего сервера.

http://your-server-ip:8000/admin/

Вы получите экран входа в систему, похожий на этот.

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

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

Шаг 3 — Создайте учетную запись суперпользователя администратора

Если вы уже настроили учетную запись администратора и можете войти на свою страницу администрирования, этот шаг можно пропустить.

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

Django позволяет создать учетную запись суперпользователя, что мы можем сделать, запустив файл manage.py, чтобы начать процесс создания суперпользователя.

  1. python manage.py createsuperuser

Как только мы это сделаем, нам будет предложено ввести данные для нашего имени пользователя, электронной почты и пароля. В этом руководстве мы создадим учетную запись администратора с именем пользователя admin_user и адресом электронной почты sammy@example.com и пароль admin123. Вы должны заполнить эту информацию своими предпочтениями и обязательно использовать безопасный пароль, который вы запомните.

Output
Username (leave blank to use 'root'): admin_user Email address: sammy@example.com

Затем дважды введите свой пароль, когда увидите приглашение Пароль:. Вы не получите вывод от нажатия клавиш вашего пароля при его вводе. Нажимайте Enter после каждого приглашения для подтверждения пароля.

Output
Password: Password (again):

На данный момент у нас есть учетная запись администратора с именем пользователя admin_user и паролем admin123.

Давайте войдем в систему и посмотрим, что существует на нашей странице администратора.

При необходимости снова запустите приложение Django с помощью python manage.py runserver 0.0.0.0:8000, а затем еще раз перейдите по URL-адресу http://your-server-ip< /mark>:8000/admin/, чтобы перейти на страницу входа администратора. Затем войдите в систему с именем пользователя, паролем и паролем, которые вы только что создали.

После успешного входа вы получите следующую страницу.

Далее нам нужно будет поработать над подключением нашего блог-приложения к панели администратора.

Шаг 4 — Создайте шаблоны URL для публикации и комментария

На предыдущем шаге мы успешно вошли в интерфейс администратора, но вы, возможно, заметили, что наше приложение блога там еще недоступно. Чтобы заполнить наш интерфейс администратора приложением блога, нам нужно добавить и зарегистрировать его с помощью связанных моделей Post и Comment.

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

  1. touch ~/my_blog_app/blog/blogsite/urls.py

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

Перейдите к местоположению файла urls.py, который мы только что создали.

  1. cd ~/my_blog_app/blog/blogsite/

Затем откройте файл, например, с помощью nano.

  1. nano urls.py

Добавьте в файл следующие строки кода.

from django.urls import path
from . import views
urlpatterns = [
    path('$/', views.posts, name='posts'),
    path('$/', views.comments, name='comments'),
]

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

Шаг 5 — Подключите приложение блога к администратору

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

Чтобы соединить их вместе, нам нужно зарегистрировать наши модели Posts и Comments в файле администратора сайта блога.

Перейдите в каталог blogsite:

  1. cd ~/my_blog_app/blog/blogsite

Затем откройте файл admin.py в текстовом редакторе по вашему выбору.

  1. nano admin.py

Файл будет заполнен оператором импорта и комментарием.

from django.contrib import admin

# Register your models here.

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

from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment


admin.site.register(Post)
admin.site.register(Comment)

Когда вы будете удовлетворены файлом, сохраните и выйдите.

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

Шаг 6. Убедитесь, что приложение Blog добавлено в Admin

Теперь, когда вы добавили соответствующий код Python, запустите сервер. Откройте http://ваш-сервер-ip:8000/admin и войдите в систему администратора, используя свои учетные данные, если вы еще не вошли в систему. В этом руководстве мы входили в систему с именем пользователя admin_user и паролем admin123.

Теперь, когда вы вошли в систему, вы должны увидеть следующую веб-страницу. Если он не изменился по сравнению с предыдущим, вам может потребоваться обновить браузер.

Это подтверждает, что мы подключили наше приложение blogsite к панели администратора Django.

Когда вы закончите тестирование своего приложения, вы можете нажать CTRL + C, чтобы остановить работу сервера Django. Это вернет вас в среду программирования.

Когда вы будете готовы покинуть среду Python, вы можете запустить команду deactivate:

  1. deactivate

Деактивация вашей среды программирования вернет вас к командной строке терминала.

Заключение

В этом руководстве вы успешно включили интерфейс администратора, создали учетную запись администратора и зарегистрировали модели Post и Comment у администратора.

Интерфейс администратора Django — это то, как вы сможете создавать сообщения и отслеживать комментарии в своем блоге.

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