le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Mi piace + Segui + Raccogli = Imparato
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.
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
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.
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.
- Password:
- 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.
- This password is too common.
- This password is entirely numeric.
- Bypass password validation and create user anyway? [y/N]: y
- 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.
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
da django.contrib importa admin da account.models importa User
class UserAdmin(admin.ModelAdmin): # Contenuto da visualizzare list_display = ['username', 'email']
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.
Fare clic su "Tabelle utente" per visualizzare le informazioni su questa tabella nel database.
È possibile fare clic sul pulsante "Aggiungi" per aggiungere nuovi dati a questa tabella.
È inoltre possibile modificare ed eliminare i dati specificati.
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
da django.contrib importa admin da blog.models importa Articolo
class ArticleAdmin(admin.ModelAdmin): # Contenuto da visualizzare list_display = ['id', 'title']
admin.site.register(Articolo, ArticleAdmin) ```
Creiamo un articolo e diamo un'occhiata.
Fai clic sul pulsante Aggiungi accanto a "Tabelle informative sugli articoli" e inserisci il seguente contenuto.
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.
Se non sei sicuro del contenuto dell'intero progetto, puoi riguardare ciò che ho compilato"Colonna Django"。
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.
Apri il progetto settings.py
file, trovatoLANGUAGE_CODE
, imposta il suo valore su'zh-hans'
.e poi trovareTIME_ZONE
impostarlo suAsia/Shanghai
。
```pitone
CODICE_LINGUA = 'zh-hans'
FUSO ORARIO = 'Asia/Shanghai' ```
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.
La configurazione è propria di ciascuna applicazione apps.py
file, attraversoverbose_name
Variabile per personalizzare il nome della colonna.
di account
Applicare come esempio.
```pitone
da django.apps importa AppConfig
classe AccountConfig(AppConfig): predefinitaautofield = 'django.db.models.BigAutoField' name = 'account' verbose_name = 'Gestione utenti' ```
blog
Lo stesso vale.
```pitone
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.
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
da django.db importa modelli
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)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
Aggiorna la pagina e vedrai che la "s" dopo "Tabella utente" è scomparsa.
blog
Stessa ragione.
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.
Dovremmo visualizzare il nome utente.
Modifichiamolo prima blog
I campi da visualizzare.
```pitone
da django.contrib importa admin da blog.models importa Articolo
def get_author(obj): restituisce obj.user.username
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'
admin.site.register(Articolo, ArticleAdmin) ```
Associa la chiave esterna al metodo get_author username
Vengono visualizzati i campi.
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
da django.db importa modelli
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)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
-
- # 返回用户名
- def __str__(self):
- 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.
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.
```pitone
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.
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
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.
Per questo articolo è tutto. Nel prossimo articolo, introdurrò come caricare le informazioni nel database in prima pagina.
Mi piace + Segui + Raccogli = Imparato