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

Вступление

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

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

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

Предпосылки

Это руководство является частью серии Django Development.

Для завершения этого урока вы должны иметь https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-16-04 [установил Django и настроил среду разработки], created приложение Django и его подключение к базе данных MySQL и created модели Django.

Шаг 1 - Включить админа

Сначала активируйте виртуальную среду Python:

cd ~/my_blog_app
. env/bin/activate

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

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

cd ~/my_blog_app/blog/blog/

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

nano settings.py

Раздел + INSTALLED_APPS + файла должен выглядеть следующим образом:

settings.py

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

Обязательно сохраните и закройте файл, если вы внесли изменения.

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

nano urls.py

Файл будет выглядеть так:

urls.py

...
from django.urls import path
from django.contrib import admin
urlpatterns = [
   path('admin/', admin.site.urls),
]

Начиная с release из Django 2.0, новый https://docs.djangoproject.com/en/2.0/topics/http/urls/ [ Функция django.url.path ()] является усовершенствованием старого способа создания шаблонов URL с помощью функции + url () +. Функция + path () + обеспечивает более простой и читаемый синтаксис маршрутизации URL.

Вот пример, иллюстрирующий это. Предыдущая функция + url () +, показанная здесь:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

Теперь можно записать с помощью функции + path () +:

path('articles/<int:year>/', views.year_archive),

Новый синтаксис также поддерживает приведение типов параметров URL. Ключевое слово year в приведенном выше примере будет интерпретироваться как + int +, а не как + string +.

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

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

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

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

cd ~/my_blog_app/blog

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

python manage.py migrate

После запуска команды мы должны были получить следующий вывод, потому что модель + admin + уже была добавлена, как мы видели при переходе к разделам + INSTALLED_APPS + файла + settings.py +.

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

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

python manage.py runserver :8000

Затем перейдите к URL панели администратора в браузере по вашему выбору:

http://:8000/admin/

Вы увидите нечто похожее на это.

изображение: https: //assets.digitalocean.com/articles/eng_python/django/django-admin-login.png [Экран входа в Django Admin]

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

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

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

Вы заметите, что всплывает страница входа, но у нас нет учетных данных для входа. Создание этих учетных данных будет простым.

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

python manage.py createsuperuser

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

OutputUsername (leave blank to use 'root'):
Email address:

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

OutputPassword:
Password (again):

Теперь у нас есть учетная запись администратора с именем пользователя и паролем .

Давайте войдем в систему и посмотрим, что существует на нашей странице администратора. + При необходимости перейдите снова к URL + http: //: 8000 / admin / +, чтобы перейти на страницу входа администратора. Затем войдите в систему, используя имя пользователя, пароль и пароль, которые вы только что создали.

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

изображение: https: //assets.digitalocean.com/articles/eng_python/django/django-admin-panel.png [Панель управления Django]

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

На предыдущем этапе мы успешно вошли в интерфейс администратора, но вы, возможно, заметили, что наше приложение для блога там до сих пор не отображается. Так что теперь мы должны пойти и изменить это, добавив и зарегистрировав ваше приложение для блога с соответствующими моделями + Posts и` + Comments`.

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

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

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

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

cd ~/my_blog_app/blog/blogsite/

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

nano urls.py

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

urls.py

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

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

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

Подключение нашего блога к администратору позволит нам видеть ссылки как для + Posts +, так и + Comments + внутри панели администратора. Как мы уже видели, на панели инструментов в данный момент отображаются ссылки для «+ Groups» и «+ Users».

Для этого нам нужно зарегистрировать ваши модели + Posts и` + Comments On` внутри админ-файла + blogsite.

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

cd ~/my_blog_app/blog/blogsite

Затем создайте файл + admin.py +:

touch admin.py

Как только вы это сделали, откройте файл:

nano admin.py

И отредактируйте файл так, чтобы он содержал следующий код.

admin.py

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 - Убедитесь, что приложение блога было добавлено к администратору

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

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

изображение: https: //assets.digitalocean.com/articles/eng_python/django/django-admin-models-added.png [Панель управления Django с добавленными моделями]

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

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

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

deactivate

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

Заключение

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

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

В этой серии мы создадим + views + для приложения блога.

Related