Страница администратора Django в Python — создание и настройка
В этом уроке вы узнаете, как создать суперпользователя и использовать его для входа на страницу администратора Django в Python.
- Что такое страница администратора в Django?
- Создание учетной записи суперпользователя
- Отображение данных из базы данных
Что такое страница администратора в Django?
Когда вы создаете новый проект с помощью команды startproject, Django автоматически генерирует страницу администратора для управления моделями, включая создание, чтение, обновление и удаление, что часто называют CRUD.
Чтобы получить доступ к странице администратора, перейдите по адресу http://127.0.0.1/admin/. Откроется страница входа:
Обратите внимание, что Django указывает admin/ в urls.py проекта:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('',include('blog.urls')) ]
Для входа в систему администратору Django требуется учетная запись. Поэтому вам необходимо создать пользователя с помощью команды Django.
Создание учетной записи суперпользователя
Чтобы создать учетную запись суперпользователя, используйте команду createsuperuser:
python manage.py createsuperuser
Будет запрошено имя пользователя, адрес электронной почты и пароль:
Username: john Email address: [email protected] Password: Password(again): Superuser created successfully.
Запустите сервер разработки Django:
python manage.py runserver
И войдите в систему, используя созданного пользователя, и вы увидите страницу администратора по умолчанию, которая управляет пользователями и группами:
Чтобы отобразить модель Post на странице администратора, ее необходимо зарегистрировать в admin.py приложения блога:
from django.contrib import admin from .models import Post admin.site.register(Post)
В этом коде:
- Сначала импортируйте публикацию из файла models.py.
- Во-вторых, зарегистрируйте его с помощью admin.site.register(Post).
После регистрации модели вы увидите ее на сайте администратора:
Отсюда вы можете управлять публикациями, включая создание, обновление, удаление и просмотр публикаций. Например, вы можете создать публикацию, нажав кнопку Добавить:
Давайте создадим три поста:
Отображение данных из базы данных
Чтобы отобразить записи из базы данных, необходимо изменить функцию home() в файле views.py приложения блога:
from django.shortcuts import render from .models import Post def home(request): posts = Post.objects.all() context = {'posts': posts} return render(request, 'blog/home.html', context) def about(request): return render(request, 'blog/about.html')
Как это работает.
- Сначала импортируем модель Post из модуля models.py:
from .models import Post
- Далее, получим все посты из базы данных, используя модель Post:
posts = Post.objects.all()
Метод all() возвращает QuerySet, содержащий все объекты Post из базы данных. Обратите внимание, что вы узнаете больше о том, как взаимодействовать с базой данных, в разделе Django ORM.
- Затем создайте контекстный словарь с ключом «posts» и значением «posts QuerySet»:
context = {'posts': posts }
- После этого передайте контекст в функцию render():
return render(request,'blog/home.html', context)
- Наконец, покажите записи в шаблоне home.html:
{% extends 'base.html' %} {% block content %} <h1>My Posts</h1> {% for post in posts %} <h2>{{ post.title }}</h2> <small>Published on {{ post.published_at | date:"M d, Y" }} by {{ post.author | title}}</small> <p>{{ post.content }}</p> {% endfor %} {% endblock content %}
Если вы откроете URL http://127.0.0.1/, вы увидите три сообщения из базы данных: