Обмен технологиями

«Джанго» имеет собственный бэкэнд.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


тема: умныйсиний

Введение в эту статью

Нравится + Подписывайтесь + Собирайте = Изучено

00.png

Об этом говорилось в предыдущей статье Django действоватьMySQL Метод объясняет, как создать модель и как добавлять, удалять, изменять и запрашивать базу данных. Но вам придется писать код каждый раз, когда вы изменяете данные, что несколько хлопотно.

Есть ли более простой способ?

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

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

Настройте адрес фоновой маршрутизации

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

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

Открыть проект urls.py файл, найденurlpatterns Эта переменная используется для заполнения фоновой маршрутизации.

```питон

Файл маршрутизации проекта urls.py.

из django.urls импортировать путь из blog.views импортировать blogIndex

urlpatterns = [ # Другие маршруты опущены # Следующее предложение представляет собой путь маршрутизации для настройки фона ('admin/', admin.site.urls) ] ```

После завершения настройки запустите проект и откройте его в браузере. http://127.0.0.1:8000/admin/ Вы можете увидеть страницу входа в фоновом режиме.

01.png

Создать учетную запись администратора

Если есть страница входа, у вас должна быть соответствующая учетная запись для входа.

Поэтому сначала нам нужно создать суперуправляющую учетную запись.

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

python manage.py createsuperuser

Затем терминал вернет вам эту строку информации, попросив ввести имя пользователя (учетной записи) суперменеджера.

Username (leave blank to use 'xxx'): admin

«xxx» — это имя моего компьютера, после двоеточия вы можете ввести учетную запись суперменеджера.То, что я ввел здесь, этоadmin

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

Email address: 123@qq.com

После ввода адреса электронной почты вам будет предложено дважды ввести пароль.

  1. Password:
  2. Password (again):

Пароль, который я ввожу здесь: 12345678, он напоминает мне слишком распространенные пароли, но я набираю y и придерживаюсь таких простых паролей.

  1. This password is too common.
  2. This password is entirely numeric.
  3. Bypass password validation and create user anyway? [y/N]: y
  4. Superuser created successfully.

Видеть Superuser created successfully. Это предложение означает, что учетная запись успешно создана.

Теперь открыть в браузере http://127.0.0.1:8000/admin/, ввод аккаунта admin, ввод пароля 12345678 Вы можете успешно войти в систему.

02.png

Фон ассоциации модели

Раньше мы использовали код для работы с базой данных, что не так удобно.

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

Создано на основе предыдущей статьи account Применить в качестве примера.

существовать account нашел в приложенииadmin.py файл, напишите следующий код.

```питон

аккаунт/админ.py

из django.contrib импорт admin из account.models импорт User

class UserAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться list_display = ['username', 'email']

Привяжите модель пользователя к UserAdmin.

admin.site.register(Пользователь, ПользовательАдминистратор) ```

Сначала нужно представиться здесь admin иUser, потому что мы хотим account Модель приложения связана с серверной частью.

Создайте файл с именем UserAdmin Класс, напиши это в немlist_display = ['username', 'email'] , что означает отображение на фоновой страницеusername иemail эти два поля.

наконец admin.site.register(User, UserAdmin) значитUser Модель и серверная часть связаны друг с другом.

Запустите проект и откройте http://127.0.0.1:8000/admin/ И войдите в систему, вы увидите модель, которую вы только что связали.

03.png

Нажмите «Пользовательские таблицы», чтобы увидеть информацию об этой таблице в базе данных.

04.png

Вы можете нажать кнопку «Добавить», чтобы добавить новые данные в эту таблицу.

05.png

Вы также можете изменять и удалять указанные данные.

06.png

Измененные данные на фоновой странице напрямую повлияют на данные в базе данных.

Таким же образом положите blog Модель приложения связана с серверной частью. Операция здесь такая же, как и раньше, поэтому я не буду объяснять ее еще раз.

```питон

блог/admin.py

из django.contrib импорт admin из blog.models импорт Статья

Зарегистрируйте свои модели здесь.

class ArticleAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться list_display = ['id', 'title']

Привяжите модель пользователя к UserAdmin.

admin.site.register(Статья, СтатьяАдминистратор) ```

07.png

Давайте создадим статью и посмотрим.

Нажмите кнопку «Добавить» рядом с надписью «Таблицы с информацией о статьях» и заполните следующее содержимое.

08.png

Нажмите SAVE После нажатия кнопки данные записываются в базу данных. Вернитесь на страницу списка «Таблицы информации об изделиях», чтобы просмотреть только что записанные данные.

09.png

Если вы не уверены в содержании всего проекта, вы можете просмотреть то, что я собрал.«Колонна Джанго»

Базовая конфигурация бэкэнда

В предыдущих операциях внимательные работники могли заметить некоторые проблемы, например, почему интерфейс на английском языке? Почему после названия таблицы стоит буква "s"?Почему в необязательном поле Пользователь при создании статьи указывается не имя пользователя, аUser object(1)

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

Установить часовой пояс и язык

Открыть проект settings.py файл, найденLANGUAGE_CODE , установите его значение'zh-hans' .а затем найтиTIME_ZONE установите его наAsia/Shanghai

```питон

настройки.py

язык

LANGUAGE_CODE = 'zh-hans'

Часовой пояс

TIME_ZONE = 'Азия/Шанхай' ```

10.png

Измените имя столбца на китайское.

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

11.png

Конфигурация каждого приложения своя. apps.py файл, черезverbose_name Переменная для настройки имени столбца.

к account Применить в качестве примера.

```питон

аккаунт/apps.py

из django.apps импорт AppConfig

класс AccountConfig(AppConfig): по умолчаниюавтоfield = 'django.db.models.BigAutoField' name = 'account' verbose_name = 'User Management' ```

blog То же самое применимо.

```питон

блог/apps.py

из django.apps импорт AppConfig

класс BlogConfig(AppConfig): по умолчаниюавтоfield = 'django.db.models.BigAutoField' name = 'blog' verbose_name = 'Управление статьями' ```

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

12.png

удалить форму множественного числа

Буква "s" после названия таблицы Django В комплекте идет. Чтобы удалить эту "s", нужно еще настроить псевдоним таблицы.

В файле модели каждого приложения (models.py) настроен в Meta информационныйverbose_name_plural

к account Применить в качестве примера.

```питон

аккаунт/models.py

из django.db импортировать модели

Создать таблицу пользователей

класс Пользователь(модели.Модель): id = модели.Автополе(первичныйkey=True) # имя пользователя = models.CharField('username', maxlength=30, null=True, Blank=True, unique=True) # Пароль, пароль = models.CharField('password', max_length=30) # Электронная почта email = models.EmailField('Email', unique=True, null= Правда, пусто=Истина)

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'

```

Обновите страницу, и вы увидите, что буква «s» после «Таблица пользователей» исчезла.

13.png

blog Та же самая причина.

Показать поля внешнего ключа

Когда мы добавляем статью, нам нужно ввести и выбрать автора статьи. Таблица авторов связана с таблицей пользователей.

При добавлении автора на странице сразу отображается имя «Объект Пользователь». Если количество пользователей увеличится, мы не сможем определить, кто есть кто.

14.png

Мы должны отобразить имя пользователя.

Давайте сначала изменим его blog Поля для отображения.

```питон

блог/admin.py

из django.contrib импорт admin из blog.models импорт Статья

Получить автора

Этот объект obj используется для получения экземпляров статей.

def get_author(obj): return obj.user.username

Зарегистрируйте свои модели здесь.

class ArticleAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться # Вы можете использовать его здесь автор заменяется именем пользователя. Здесь не нужно добавлять одинарные кавычки или круглые скобки. # Джанго использует список При отображении в метод по умолчанию будет передан параметр. списокдисплей = ['id', получитьавтор, «название», «содержание»]

получатьавтор.короткийописание = 'Автор'

Привяжите модель пользователя к UserAdmin.

admin.site.register(Статья, СтатьяАдминистратор) ```

Свяжите внешний ключ с методом get_author. username Поля отображаются.

15.png

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

Нужно изменить на данный момент User Подойдут только модели.

```питон

аккаунт/models.py

из django.db импортировать модели

Создать таблицу пользователей

класс Пользователь(модели.Модель): id = модели.Автополе(первичныйkey=True) # имя пользователя = models.CharField('username', maxlength=30, null=True, Blank=True, unique=True) # Пароль, пароль = models.CharField('password', max_length=30) # Электронная почта email = models.EmailField('Email', unique=True, null= Правда, пусто=Истина)

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'
  7. # 返回用户名
  8. def __str__(self):
  9. return self.username

```

существовать account/models.py Добавить в конце__str__ метод, возвратusername

В это время имя пользователя можно увидеть на странице редактирования информации о статье.

16.png

Пользовательские редактируемые ссылки перехода

Если вы хотите отредактировать статью на странице управления статьями, вы можете только щелкнуть поле «ID», чтобы перейти на страницу редактирования.Если вы хотите перейти на страницу редактирования, нажав на другие поля, вам необходимо настроить ее вручную.blog/admin.py Например, я хочу нажать «НАЗВАНИЕ», чтобы перейти на страницу редактирования.

17.png

```питон

блог/admin.py

Опустить часть кода

class ArticleAdmin(admin.ModelAdmin): # Список отображаемого контентадисплей = ['id', получитьавтор, 'title', 'content'] # список полей с возможностью переходаотображатьlinks = ['id', 'title'] # Опустить часть кода```

я здесь ArticleAdmin добавлено вlist_display_links = ['id', 'title'], обозначающий щелчок id иtitle Вы можете перейти на страницу редактирования.

атрибут только для чтения

При редактировании контента мы не хотим, чтобы некоторые поля можно было изменять. Например, идентификатор блога нельзя изменить.

допустимый blog/admin.py Добавить вreadonly_fields Указывает поля, которые нельзя изменить.

```питон

блог/admin.py

Опустить часть кода

class ArticleAdmin(admin.ModelAdmin): # Атрибут только для чтения readonly_fields = ['id'] # Опускаем часть кода````

При редактировании в это время значение поля id изменить невозможно.

18.png


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

IMG_8982.GIF

Нравится + Подписывайтесь + Собирайте = Изучено