Страница администратора Django в Python — создание и настройка

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

Содержание

Что такое страница администратора в Django?

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

Чтобы получить доступ к странице администратора, перейдите по адресу http://127.0.0.1/admin/. Откроется страница входа:

Доступ к странице администратора django

Обратите внимание, что 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

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

Страница администратора django - панель администратора

Чтобы отобразить модель Post на странице администратора, ее необходимо зарегистрировать в admin.py приложения блога:

from django.contrib import admin
from .models import Post


admin.site.register(Post)

В этом коде:

  • Сначала импортируйте публикацию из файла models.py.
  • Во-вторых, зарегистрируйте его с помощью admin.site.register(Post).

После регистрации модели вы увидите ее на сайте администратора:

Страница администратора django - блог

Отсюда вы можете управлять публикациями, включая создание, обновление, удаление и просмотр публикаций. Например, вы можете создать публикацию, нажав кнопку Добавить:

Страница администратора django - создать пост

Давайте создадим три поста:

Страница администратора django - список сообщений

Отображение данных из базы данных

Чтобы отобразить записи из базы данных, необходимо изменить функцию 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/, вы увидите три сообщения из базы данных:

Страница администратора django - отображение данных из базы данных

Похожие посты
Добавить комментарий

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