моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Нравится + Подписывайтесь + Собирайте = Изучено
Об этом говорилось в предыдущей статье Django
действоватьMySQL
Метод объясняет, как создать модель и как добавлять, удалять, изменять и запрашивать базу данных. Но вам придется писать код каждый раз, когда вы изменяете данные, что несколько хлопотно.
Есть ли более простой способ?
Некоторые, некоторые,Django
Фактически, он поставляется с серверной частью, которая представляет собой графический интерфейс, и вы можете легко управлять различным содержимым данных.
Далее давайте поговорим о том, как использовать этот встроенный бэкэнд.
На самом деле создание Django
В ходе проекта мы уже настроили для себя адрес маршрутизации в фоновом режиме.
Если вы будете шаг за шагом следовать моей предыдущей статье, фоновая маршрутизация может быть удалена. Это не имеет значения, просто примиритесь.
Открыть проект urls.py
файл, найденurlpatterns
Эта переменная используется для заполнения фоновой маршрутизации.
```питон
из django.urls импортировать путь из blog.views импортировать blogIndex
urlpatterns = [ # Другие маршруты опущены # Следующее предложение представляет собой путь маршрутизации для настройки фона ('admin/', admin.site.urls) ] ```
После завершения настройки запустите проект и откройте его в браузере. http://127.0.0.1:8000/admin/
Вы можете увидеть страницу входа в фоновом режиме.
Если есть страница входа, у вас должна быть соответствующая учетная запись для входа.
Поэтому сначала нам нужно создать суперуправляющую учетную запись.
Откройте терминал, войдите в каталог проекта и введите следующую команду, чтобы создать учетную запись суперменеджера.
python manage.py createsuperuser
Затем терминал вернет вам эту строку информации, попросив ввести имя пользователя (учетной записи) суперменеджера.
Username (leave blank to use 'xxx'): admin
«xxx» — это имя моего компьютера, после двоеточия вы можете ввести учетную запись суперменеджера.То, что я ввел здесь, этоadmin
。
После ввода вашего имени пользователя он будет продолжать просить вас ввести свой адрес электронной почты.
Email address: 123@qq.com
После ввода адреса электронной почты вам будет предложено дважды ввести пароль.
- Password:
- Password (again):
Пароль, который я ввожу здесь: 12345678
, он напоминает мне слишком распространенные пароли, но я набираю y и придерживаюсь таких простых паролей.
- This password is too common.
- This password is entirely numeric.
- Bypass password validation and create user anyway? [y/N]: y
- Superuser created successfully.
Видеть Superuser created successfully.
Это предложение означает, что учетная запись успешно создана.
Теперь открыть в браузере http://127.0.0.1:8000/admin/
, ввод аккаунта admin
, ввод пароля 12345678
Вы можете успешно войти в систему.
Раньше мы использовали код для работы с базой данных, что не так удобно.
Django
Предоставляет нам возможность привязать модель приложения к фоновому режиму, чтобы мы могли напрямую управлять данными в фоновом интерфейсе.
Создано на основе предыдущей статьи account
Применить в качестве примера.
существовать account
нашел в приложенииadmin.py
файл, напишите следующий код.
```питон
из django.contrib импорт admin из account.models импорт User
class UserAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться list_display = ['username', 'email']
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/
И войдите в систему, вы увидите модель, которую вы только что связали.
Нажмите «Пользовательские таблицы», чтобы увидеть информацию об этой таблице в базе данных.
Вы можете нажать кнопку «Добавить», чтобы добавить новые данные в эту таблицу.
Вы также можете изменять и удалять указанные данные.
Измененные данные на фоновой странице напрямую повлияют на данные в базе данных.
Таким же образом положите blog
Модель приложения связана с серверной частью. Операция здесь такая же, как и раньше, поэтому я не буду объяснять ее еще раз.
```питон
из django.contrib импорт admin из blog.models импорт Статья
class ArticleAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться list_display = ['id', 'title']
admin.site.register(Статья, СтатьяАдминистратор) ```
Давайте создадим статью и посмотрим.
Нажмите кнопку «Добавить» рядом с надписью «Таблицы с информацией о статьях» и заполните следующее содержимое.
Нажмите SAVE
После нажатия кнопки данные записываются в базу данных. Вернитесь на страницу списка «Таблицы информации об изделиях», чтобы просмотреть только что записанные данные.
Если вы не уверены в содержании всего проекта, вы можете просмотреть то, что я собрал.«Колонна Джанго»。
В предыдущих операциях внимательные работники могли заметить некоторые проблемы, например, почему интерфейс на английском языке? Почему после названия таблицы стоит буква "s"?Почему в необязательном поле Пользователь при создании статьи указывается не имя пользователя, аUser object(1)
?
Далее мы будем решать эти проблемы одну за другой.
Открыть проект settings.py
файл, найденLANGUAGE_CODE
, установите его значение'zh-hans'
.а затем найтиTIME_ZONE
установите его наAsia/Shanghai
。
```питон
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Азия/Шанхай' ```
Но в это время ACCOUNT
иBLOG
Еще на английском, здесьDjango
Его нельзя напрямую перевести на китайский язык. Вам необходимо настроить псевдонимы для этих двух приложений.
Конфигурация каждого приложения своя. apps.py
файл, черезverbose_name
Переменная для настройки имени столбца.
к account
Применить в качестве примера.
```питон
из django.apps импорт AppConfig
класс AccountConfig(AppConfig): по умолчаниюавтоfield = 'django.db.models.BigAutoField' name = 'account' verbose_name = 'User Management' ```
blog
То же самое применимо.
```питон
из django.apps импорт AppConfig
класс BlogConfig(AppConfig): по умолчаниюавтоfield = 'django.db.models.BigAutoField' name = 'blog' verbose_name = 'Управление статьями' ```
В это время обновите страницу и вы увидите, что имя столбца было изменено.
Буква "s" после названия таблицы Django
В комплекте идет. Чтобы удалить эту "s", нужно еще настроить псевдоним таблицы.
В файле модели каждого приложения (models.py
) настроен в Meta
информационныйverbose_name_plural
。
к account
Применить в качестве примера.
```питон
из 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= Правда, пусто=Истина)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
Обновите страницу, и вы увидите, что буква «s» после «Таблица пользователей» исчезла.
blog
Та же самая причина.
Когда мы добавляем статью, нам нужно ввести и выбрать автора статьи. Таблица авторов связана с таблицей пользователей.
При добавлении автора на странице сразу отображается имя «Объект Пользователь». Если количество пользователей увеличится, мы не сможем определить, кто есть кто.
Мы должны отобразить имя пользователя.
Давайте сначала изменим его blog
Поля для отображения.
```питон
из django.contrib импорт admin из blog.models импорт Статья
def get_author(obj): return obj.user.username
class ArticleAdmin(admin.ModelAdmin): # Содержимое, которое будет отображаться # Вы можете использовать его здесь автор заменяется именем пользователя. Здесь не нужно добавлять одинарные кавычки или круглые скобки. # Джанго использует список При отображении в метод по умолчанию будет передан параметр. списокдисплей = ['id', получитьавтор, «название», «содержание»]
получатьавтор.короткийописание = 'Автор'
admin.site.register(Статья, СтатьяАдминистратор) ```
Свяжите внешний ключ с методом get_author. username
Поля отображаются.
На этом этапе мы сможем увидеть, кто автор этой статьи. Но нам также необходимо отобразить имя пользователя на странице редактирования.
Нужно изменить на данный момент User
Подойдут только модели.
```питон
из 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= Правда, пусто=Истина)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
-
- # 返回用户名
- def __str__(self):
- return self.username
```
существовать account/models.py
Добавить в конце__str__
метод, возвратusername
。
В это время имя пользователя можно увидеть на странице редактирования информации о статье.
Если вы хотите отредактировать статью на странице управления статьями, вы можете только щелкнуть поле «ID», чтобы перейти на страницу редактирования.Если вы хотите перейти на страницу редактирования, нажав на другие поля, вам необходимо настроить ее вручную.blog/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
Указывает поля, которые нельзя изменить.
```питон
class ArticleAdmin(admin.ModelAdmin): # Атрибут только для чтения readonly_fields = ['id'] # Опускаем часть кода````
При редактировании в это время значение поля id изменить невозможно.
Это все, что касается этой статьи. В следующей статье я расскажу, как загрузить информацию в базу данных на главной странице.
Нравится + Подписывайтесь + Собирайте = Изучено