Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Me gusta + Seguir + Recopilar = Aprendido
Hablé de ello en el artículo anterior. Django
funcionarMySQL
El método explica cómo crear un modelo y cómo agregar, eliminar, modificar y consultar la base de datos. Pero tienes que escribir código cada vez que modificas los datos, lo cual es algo problemático.
¿Hay alguna forma más simple?
Alguno alguno,Django
De hecho, viene con un backend, que es una interfaz gráfica, y puedes operar fácilmente varios contenidos de datos en él.
A continuación, hablemos sobre cómo utilizar este backend integrado.
Realmente creando Django
Durante el proyecto, ya configuramos la dirección de enrutamiento en segundo plano.
Si sigue mi artículo anterior paso a paso, es posible que se elimine el enrutamiento en segundo plano. No importa, solo invéntalo.
abrir el proyecto urls.py
archivo encontradourlpatterns
Esta variable se utiliza para completar el enrutamiento en segundo plano.
``pitón
desde django.urls importa ruta desde blog.views importa blogIndex
urlpatterns = [ # Se omiten otras rutas # La siguiente oración es la ruta de enrutamiento para configurar el fondo ('admin/', admin.site.urls) ] ```
Una vez completada la configuración, inicie el proyecto y ábralo en el navegador. http://127.0.0.1:8000/admin/
Puede ver la página de inicio de sesión en segundo plano.
Si hay una página de inicio de sesión, debe tener una cuenta correspondiente para iniciar sesión.
Por lo tanto, primero debemos crear una cuenta de súper administración.
Abra la terminal, ingrese al directorio del proyecto e ingrese el siguiente comando para crear una cuenta de súper administración.
python manage.py createsuperuser
Luego, el terminal le devolverá esta línea de información y le pedirá que ingrese el nombre de usuario de súper administración (cuenta)
Username (leave blank to use 'xxx'): admin
'xxx' aquí es el nombre de mi computadora, puede ingresar la cuenta de súper administración después de los dos puntos.Lo que entré aquí esadmin
。
Después de ingresar su nombre de usuario, le seguirá pidiendo que ingrese su dirección de correo electrónico.
Email address: 123@qq.com
Después de ingresar su dirección de correo electrónico, se le pedirá que ingrese su contraseña dos veces.
- Password:
- Password (again):
La contraseña que ingreso aquí es 12345678
, me recuerda inteligentemente contraseñas que son demasiado comunes, pero escribo y y me quedo con contraseñas tan simples.
- This password is too common.
- This password is entirely numeric.
- Bypass password validation and create user anyway? [y/N]: y
- Superuser created successfully.
Ver Superuser created successfully.
Esta frase significa que la cuenta se ha creado correctamente.
Ahora abre en el navegador http://127.0.0.1:8000/admin/
, entrada de cuenta admin
, entrada de contraseña 12345678
Puede iniciar sesión correctamente.
Anteriormente hemos utilizado código para operar la base de datos, lo cual no es tan conveniente.
Django
Nos proporciona una forma de vincular el modelo de la aplicación al fondo, de modo que podamos operar directamente los datos en la interfaz en segundo plano.
Creado a partir del artículo anterior. account
Aplicar como ejemplo.
existir account
encontrado en la aplicaciónadmin.py
archivo, escriba el siguiente código.
``pitón
desde django.contrib import admin desde account.models import User
clase UserAdmin(admin.ModelAdmin): # Contenido que se mostrará list_display = ['nombre de usuario', 'correo electrónico']
admin.site.register(Usuario, UsuarioAdmin) ```
Es necesario presentarlo aquí primero. admin
yUser
, porque queremos account
El modelo de aplicación está asociado con el backend.
Crea un archivo llamado UserAdmin
Clase, escríbelo en él.list_display = ['username', 'email']
, es decir, mostrar en la página de fondousername
yemail
estos dos campos.
por fin admin.site.register(User, UserAdmin)
significa queUser
El modelo y el backend están unidos.
Ejecute el proyecto y abra http://127.0.0.1:8000/admin/
E inicie sesión, podrá ver el modelo que acaba de vincular.
Haga clic en "Tablas de usuarios" para ver la información sobre esta tabla en la base de datos.
Puede hacer clic en el botón "Agregar" para agregar nuevos datos a esta tabla.
También puede modificar y eliminar datos específicos.
Los datos modificados en la página de fondo afectarán directamente a los datos de la base de datos.
De la misma manera, pon blog
El modelo de aplicación está asociado con el backend. El funcionamiento aquí es el mismo que antes, así que no lo volveré a explicar.
``pitón
desde django.contrib import admin desde blog.models import Artículo
clase ArticleAdmin(admin.ModelAdmin): # Contenido que se mostrará list_display = ['id', 'title']
admin.site.register(Artículo, ArticleAdmin) ```
Creemos un artículo y echemos un vistazo.
Haga clic en el botón Agregar junto a "Tablas de información del artículo" y complete el siguiente contenido.
Hacer clic SAVE
Después de presionar el botón, los datos se escriben en la base de datos. Regrese a la página de lista de "Tablas de información del artículo" para ver los datos que acaba de escribir.
Si no está seguro del contenido de todo el proyecto, puede consultar lo que compilé."Columna Django"。
En las operaciones anteriores, los trabajadores atentos pueden haber notado algunos problemas, como por ejemplo ¿por qué la interfaz está en inglés? ¿Por qué aparece una "s" después del nombre de la tabla?¿Por qué el campo Usuario opcional al crear un artículo no es el nombre de usuario, sinoUser object(1)
?
A continuación resolveremos estos problemas uno por uno.
abrir el proyecto settings.py
archivo encontradoLANGUAGE_CODE
, establezca su valor en'zh-hans'
.y luego encontrarTIME_ZONE
configúrelo enAsia/Shanghai
。
``pitón
CÓDIGO DE IDIOMA = 'zh-hans'
ZONA HORARIA = 'Asia/Shanghai' ```
Pero en este momento ACCOUNT
yBLOG
Todavía en inglés, aquí.Django
No se puede traducir directamente al chino. Es necesario configurar alias para estas dos aplicaciones.
La configuración es propia de cada aplicación. apps.py
archivo, a través deverbose_name
Variable para personalizar el nombre de la columna.
por account
Aplicar como ejemplo.
``pitón
desde django.apps importar AppConfig
clase AccountConfig(AppConfig): predeterminadoautocampo = 'django.db.models.BigAutoField' nombre = 'cuenta' verbose_name = 'Gestión de usuarios' ```
blog
Lo mismo aplica.
``pitón
desde django.apps importar AppConfig
clase BlogConfig(AppConfig): predeterminadoautocampo = 'django.db.models.BigAutoField' nombre = 'blog' verbose_name = 'Gestión de artículos' ```
En este momento, actualice la página y verá que el nombre de la columna ha sido cambiado.
La "s" después del nombre de la tabla es Django
Viene con él. Para eliminar esta "s", también necesitas configurar el alias de la tabla.
En el archivo de modelo de cada aplicación (models.py
) configurado en Meta
informativoverbose_name_plural
。
por account
Aplicar como ejemplo.
``pitón
desde django.db importar modelos
clase Usuario(modelos.Modelo): id = modelos.AutoField(primarioclave = Verdadero) # nombre de usuario = modelos.CharField ('nombre de usuario', máx.longitud=30, nulo=Verdadero, en blanco=Verdadero, único=Verdadero) # Contraseña contraseña = models.CharField('contraseña', max_length=30) # Correo electrónico correo electrónico = models.EmailField('Email', único=Verdadero, nulo= Verdadero, en blanco=Verdadero)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
Actualice la página y verá que la "s" después de "Tabla de usuarios" desapareció.
blog
Misma razón.
Cuando agregamos un artículo, debemos ingresar y seleccionar el autor del artículo. El autor de la tabla de artículos está asociado con la tabla de usuarios.
Al agregar un autor, la página muestra directamente el nombre "Objeto de usuario". Si el número de usuarios aumenta, no podremos saber quién es quién.
Deberíamos mostrar el nombre de usuario.
Modifiquémoslo primero blog
Los campos a mostrar.
``pitón
desde django.contrib import admin desde blog.models import Artículo
def get_author(obj): devuelve obj.usuario.nombreusuario
clase ArticleAdmin(admin.ModelAdmin): # Contenido que se mostrará # Puedes usar llegar aquí El autor se reemplaza por el nombre de usuario. No es necesario agregar comillas simples ni paréntesis aquí. # django está usando la lista Al mostrar, se pasará un parámetro al método de forma predeterminada. listamostrar = ['id', obtenerautor, 'título', 'contenido']
conseguirautor.cortodescripción = 'Autor'
admin.site.register(Artículo, ArticleAdmin) ```
Asociar la clave externa con el método get_author username
Se muestran los campos.
En este punto podremos ver quién es el autor de este artículo. Pero aún necesitamos mostrar el nombre de usuario en la página de edición.
Necesita modificar en este momento User
Sólo los modelos servirán.
``pitón
desde django.db importar modelos
clase Usuario(modelos.Modelo): id = modelos.AutoField(primarioclave = Verdadero) # nombre de usuario = modelos.CharField ('nombre de usuario', máx.longitud=30, nulo=Verdadero, en blanco=Verdadero, único=Verdadero) # Contraseña contraseña = models.CharField('contraseña', max_length=30) # Correo electrónico correo electrónico = models.EmailField('Email', único=Verdadero, nulo= Verdadero, en blanco=Verdadero)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
-
- # 返回用户名
- def __str__(self):
- return self.username
```
existir account/models.py
Añadir al final__str__
método, retornousername
。
En este momento, el nombre de usuario se puede ver en la página de edición de la información del artículo.
En la página de administración de artículos, si desea editar un artículo, solo puede hacer clic en el campo "ID" para ir a la página de edición.Si desea saltar a la página de edición haciendo clic en otros campos, debe configurarlo manualmente.blog/admin.py
Por ejemplo, quiero hacer clic en "TÍTULO" para ir a la página de edición.
``pitón
clase ArticleAdmin(admin.ModelAdmin): # Lista de contenido que se mostrarámostrar = ['id', obtenerautor, 'título', 'contenido'] # lista de campos saltablesmostrarlinks = ['id', 'title'] # Omitir algún código```
Estoy aquí ArticleAdmin
añadido enlist_display_links = ['id', 'title']
, indicando clic id
ytitle
Puede saltar a la página de edición.
Al editar contenido, no queremos que algunos campos sean modificables. Por ejemplo, el ID del blog no se puede modificar.
admisible blog/admin.py
Añadirreadonly_fields
Especifica campos que no se pueden modificar.
``pitón
clase ArticleAdmin(admin.ModelAdmin): # Atributo de solo lectura readonly_fields = ['id'] # Omitir algún código````
Al editar en este momento, el valor del campo de identificación no se puede modificar.
Eso es todo por este artículo. En el próximo artículo, presentaré cómo cargar la información en la base de datos en la página principal.
Me gusta + Seguir + Recopilar = Aprendido