Condivisione della tecnologia

"Django" viene fornito con il proprio backend

2024-07-12

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


tema: smartblue

Introduzione a questo articolo

Mi piace + Segui + Raccogli = Imparato

00.png

Ne abbiamo parlato nell'articolo precedente Django operareMySQL Il metodo spiega come creare un modello e come aggiungere, eliminare, modificare ed interrogare il database. Ma devi scrivere codice ogni volta che modifichi i dati, il che è alquanto problematico.

c'è un modo più facile?

Alcuni, alcuni,Django Infatti, viene fornito con un backend, che è un'interfaccia grafica, su cui puoi facilmente gestire vari contenuti di dati.

Successivamente, parliamo di come utilizzare questo backend integrato.

Configura l'indirizzo di routing in background

Creare davvero Django Durante il progetto abbiamo già configurato per noi l'indirizzo di routing in background.

Se segui passo dopo passo il mio articolo precedente, il routing in background potrebbe essere eliminato. Non importa, inventalo e basta.

Apri il progetto urls.py file, trovatourlpatterns Questa variabile viene utilizzata per compilare il routing in background.

```pitone

Il file di routing del progetto urls.py

da django.urls importa percorso da blog.views importa blogIndex

urlpatterns = [ # Gli altri percorsi sono omessi # La frase seguente è il percorso di routing per la configurazione dello sfondo ('admin/', admin.site.urls) ] ```

Una volta completata la configurazione, avviare il progetto e aprirlo nel browser http://127.0.0.1:8000/admin/ Puoi vedere la pagina di accesso in background.

01.png

Crea un account amministratore

Se è presente una pagina di accesso, è necessario disporre di un account corrispondente per accedere.

Quindi dobbiamo prima creare un super account di gestione.

Apri il terminale, accedi alla directory del progetto e inserisci il comando seguente per creare un account di super gestione.

python manage.py createsuperuser

Quindi il terminale ti restituirà questa riga di informazioni, chiedendoti di inserire il nome utente (account) della super gestione

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

'xxx' ecco il nome del mio computer, puoi inserire l'account di gestione super dopo i due punti.Quello che ho inserito qui èadmin

Dopo aver inserito il tuo nome utente, continuerà a chiederti di inserire il tuo indirizzo email.

Email address: 123@qq.com

Dopo aver inserito il tuo indirizzo email, ti verrà chiesto di inserire la password due volte.

  1. Password:
  2. Password (again):

La password che inserisco qui è 12345678, mi ricorda in modo intelligente le password troppo comuni, ma digito y e mi attengo a password così semplici.

  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.

Vedere Superuser created successfully. Questa frase significa che l'account è stato creato con successo.

Ora apri nel browser http://127.0.0.1:8000/admin/, input dell'account admin, immissione della password 12345678 Puoi accedere con successo.

02.png

Sfondo dell'associazione del modello

In precedenza abbiamo utilizzato il codice per gestire il database, il che non è così conveniente.

Django Fornisce un modo per associare il modello applicativo allo sfondo, in modo da poter gestire direttamente i dati nell'interfaccia in background.

Creato dall'articolo precedente account Applicare come esempio.

esistere account trovato nell'applicazioneadmin.py file, scrivere il seguente codice.

```pitone

account/admin.py

da django.contrib importa admin da account.models importa User

class UserAdmin(admin.ModelAdmin): # Contenuto da visualizzare list_display = ['username', 'email']

Associa il modello Utente a UserAdmin

admin.site.register(Utente, UtenteAdmin) ```

È necessario presentarli prima qui admin EUser, perché lo vogliamo account Il modello applicativo è associato al backend.

Crea un file chiamato UserAdmin Classe, scrivilo dentrolist_display = ['username', 'email'] , ovvero da visualizzare nella pagina di sfondousername Eemail questi due campi.

infine admin.site.register(User, UserAdmin) significaUser Il modello e il backend sono legati insieme.

Esegui il progetto e aprilo http://127.0.0.1:8000/admin/ E accedi, potrai vedere il modello che hai appena rilegato.

03.png

Fare clic su "Tabelle utente" per visualizzare le informazioni su questa tabella nel database.

04.png

È possibile fare clic sul pulsante "Aggiungi" per aggiungere nuovi dati a questa tabella.

05.png

È inoltre possibile modificare ed eliminare i dati specificati.

06.png

I dati modificati nella pagina di sfondo influenzeranno direttamente i dati nel database.

Allo stesso modo, metti blog Il modello applicativo è associato al backend. Il funzionamento qui è lo stesso di prima, quindi non lo spiegherò di nuovo.

```pitone

blog/admin.py

da django.contrib importa admin da blog.models importa Articolo

Registra qui i tuoi modelli.

class ArticleAdmin(admin.ModelAdmin): # Contenuto da visualizzare list_display = ['id', 'title']

Associa il modello Utente a UserAdmin

admin.site.register(Articolo, ArticleAdmin) ```

07.png

Creiamo un articolo e diamo un'occhiata.

Fai clic sul pulsante Aggiungi accanto a "Tabelle informative sugli articoli" e inserisci il seguente contenuto.

08.png

Clic SAVE Dopo aver premuto il pulsante, i dati vengono scritti nel database. Ritorna alla pagina di elenco delle "Tabelle informazioni articolo" per vedere i dati appena scritti.

09.png

Se non sei sicuro del contenuto dell'intero progetto, puoi riguardare ciò che ho compilato"Colonna Django"

Configurazione di base del backend

Nelle operazioni precedenti, i lavoratori più attenti potrebbero aver notato alcuni problemi, ad esempio perché l'interfaccia è in inglese? Perché c'è una "s" dopo il nome della tabella?Perché il campo Utente opzionale durante la creazione di un articolo non è il nome utente, maUser object(1)

Successivamente risolveremo questi problemi uno per uno.

Imposta fuso orario e lingua

Apri il progetto settings.py file, trovatoLANGUAGE_CODE , imposta il suo valore su'zh-hans' .e poi trovareTIME_ZONE impostarlo suAsia/Shanghai

```pitone

impostazioni.py

lingua

CODICE_LINGUA = 'zh-hans'

Fuso orario

FUSO ORARIO = 'Asia/Shanghai' ```

10.png

Cambia il nome della colonna in cinese

Ma in questo momento ACCOUNT EBLOG Sempre in inglese, quiDjango Non può essere tradotto direttamente in cinese. È necessario configurare gli alias per queste due applicazioni.

11.png

La configurazione è propria di ciascuna applicazione apps.py file, attraversoverbose_name Variabile per personalizzare il nome della colonna.

di account Applicare come esempio.

```pitone

account/app.py

da django.apps importa AppConfig

classe AccountConfig(AppConfig): predefinitaautofield = 'django.db.models.BigAutoField' name = 'account' verbose_name = 'Gestione utenti' ```

blog Lo stesso vale.

```pitone

blog/apps.py

da django.apps importa AppConfig

classe BlogConfig(AppConfig): predefinitaautofield = 'django.db.models.BigAutoField' name = 'blog' verbose_name = 'Gestione articoli' ```

A questo punto, aggiorna la pagina e vedrai che il nome della colonna è stato modificato.

12.png

eliminare la forma plurale

La "s" dopo il nome della tabella è Django Viene fornito con esso. Per eliminare questa "s", è necessario configurare anche l'alias della tabella.

Nel file del modello di ciascuna applicazione (models.py) configurato in Meta informativoverbose_name_plural

di account Applicare come esempio.

```pitone

account/modelli.py

da django.db importa modelli

Crea una tabella utente

classe Utente(modelli.Modello): id = modelli.AutoField(primariokey=True) # nomeutente = models.CharField('nomeutente', maxlength=30, null=True, vuoto=True, unique=True) # Password password = models.CharField('password', max_length=30) # Email email = models.EmailField('Email', unique=True, null= Vero, vuoto=Vero)

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

```

Aggiorna la pagina e vedrai che la "s" dopo "Tabella utente" è scomparsa.

13.png

blog Stessa ragione.

Mostra i campi chiave esterna

Quando aggiungiamo un articolo, dobbiamo inserire e selezionare l'autore dell'articolo. L'autore della tabella articoli è associato alla tabella utente.

Quando si aggiunge un autore, la pagina visualizza direttamente il nome "Oggetto utente". Se il numero di utenti aumenta, non saremo in grado di dire chi è chi.

14.png

Dovremmo visualizzare il nome utente.

Modifichiamolo prima blog I campi da visualizzare.

```pitone

blog/admin.py

da django.contrib importa admin da blog.models importa Articolo

Ottieni l'autore

Questo oggetto obj viene utilizzato per ricevere istanze di Article

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

Registra qui i tuoi modelli.

class ArticleAdmin(admin.ModelAdmin): # Contenuto da visualizzare # Puoi usare get here l'autore viene sostituito dal nome utente. Non è necessario aggiungere virgolette singole o parentesi qui. # django sta usando list Durante la visualizzazione, un parametro verrà passato al metodo per impostazione predefinita. elencovisualizza = ['id', ottieniautore, 'titolo', 'contenuto']

Ottenereautore.brevedescrizione = 'Autore'

Associa il modello Utente a UserAdmin

admin.site.register(Articolo, ArticleAdmin) ```

Associa la chiave esterna al metodo get_author username Vengono visualizzati i campi.

15.png

A questo punto potremo vedere chi è l'autore di questo articolo. Ma dobbiamo anche visualizzare il nome utente nella pagina di modifica.

È necessario modificare in questo momento User Andranno bene solo i modelli.

```pitone

account/modelli.py

da django.db importa modelli

Crea una tabella utente

classe Utente(modelli.Modello): id = modelli.AutoField(primariokey=True) # nomeutente = models.CharField('nomeutente', maxlength=30, null=True, vuoto=True, unique=True) # Password password = models.CharField('password', max_length=30) # Email email = models.EmailField('Email', unique=True, null= Vero, vuoto=Vero)

  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

```

esistere account/models.py Aggiungi alla fine__str__ metodo, ritornousername

Al momento, il nome utente può essere visualizzato nella pagina di modifica delle informazioni sull'articolo.

16.png

Collegamenti di salto modificabili personalizzati

Nella pagina di gestione degli articoli, se desideri modificare un articolo, puoi solo cliccare sul campo "ID" per passare alla pagina di modifica.Se vuoi passare alla pagina di modifica cliccando su altri campi, devi configurarlo manualmente.blog/admin.py Ad esempio, voglio fare clic su "TITOLO" per passare alla pagina di modifica.

17.png

```pitone

blog/admin.py

Ometti del codice

class ArticleAdmin(admin.ModelAdmin): # Elenco dei contenuti da visualizzarevisualizza = ['id', ottieniautore, 'titolo', 'contenuto'] # elenco di campi saltabiliSchermolinks = ['id', 'titolo'] # Ometti del codice```

io sono qui ArticleAdmin aggiuntolist_display_links = ['id', 'title'], che indica il clic id Etitle Puoi saltare alla pagina di modifica.

attributo di sola lettura

Quando modifichiamo il contenuto, non vogliamo che alcuni campi siano modificabili. Ad esempio, l'ID del blog non può essere modificato.

ammissibile blog/admin.py Aggiungerereadonly_fields Specifica i campi che non possono essere modificati.

```pitone

blog/admin.py

Ometti del codice

class ArticleAdmin(admin.ModelAdmin): # Attributo di sola lettura readonly_fields = ['id'] # Ometti del codice````

Durante la modifica in questo momento, il valore del campo ID non può essere modificato.

18.png


Per questo articolo è tutto. Nel prossimo articolo, introdurrò come caricare le informazioni nel database in prima pagina.

IMG_8982.GIF

Mi piace + Segui + Raccogli = Imparato