τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Μου αρέσει + Ακολουθήστε + Συλλέξτε = Έμαθα
Μίλησε για αυτό στο προηγούμενο άρθρο Django
λειτουργείMySQL
Η μέθοδος εξηγεί πώς να δημιουργήσετε ένα μοντέλο και πώς να προσθέσετε, να διαγράψετε, να τροποποιήσετε και να υποβάλετε ερώτημα στη βάση δεδομένων. Αλλά πρέπει να γράφετε κώδικα κάθε φορά που τροποποιείτε τα δεδομένα, κάτι που είναι κάπως ενοχλητικό.
Υπάρχει πιο απλός τρόπος;
Κάποιοι, κάποιοι,Django
Στην πραγματικότητα, συνοδεύεται από ένα backend, το οποίο είναι μια γραφική διεπαφή, και μπορείτε εύκολα να χειριστείτε διάφορα περιεχόμενα δεδομένων σε αυτό.
Στη συνέχεια, ας μιλήσουμε για το πώς να χρησιμοποιήσετε αυτό το ενσωματωμένο backend.
Ουσιαστικά δημιουργώντας Django
Κατά τη διάρκεια του έργου, έχουμε ήδη διαμορφώσει τη διεύθυνση δρομολόγησης στο παρασκήνιο για εμάς.
Εάν ακολουθήσετε το προηγούμενο άρθρο μου βήμα προς βήμα, η δρομολόγηση στο παρασκήνιο ενδέχεται να διαγραφεί. Δεν πειράζει, απλά φτιάξτε το.
Ανοίξτε το έργο urls.py
αρχείο, βρέθηκεurlpatterns
Αυτή η μεταβλητή χρησιμοποιείται για να συμπληρώσει τη δρομολόγηση φόντου.
```python
από 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 σας.
Email address: 123@qq.com
Αφού εισαγάγετε τη διεύθυνση email σας, θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασής σας δύο φορές.
- 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
αρχείο, γράψτε τον παρακάτω κώδικα.
```python
από django.contrib εισαγωγή διαχειριστή από account.models εισαγωγή Χρήστης
class UserAdmin(admin.ModelAdmin): # Περιεχόμενο προς εμφάνιση list_display = ['όνομα χρήστη', 'email']
admin.site.register(User, UserAdmin) ```
Πρέπει πρώτα να εισαχθεί εδώ admin
καιUser
, γιατί το θέλουμε account
Το μοντέλο εφαρμογής σχετίζεται με το backend.
Δημιουργήστε ένα αρχείο με όνομα UserAdmin
Τάξη, γράψε το σε αυτόlist_display = ['username', 'email']
, που σημαίνει να εμφανίζεται στη σελίδα φόντουusername
καιemail
αυτά τα δύο πεδία.
Επιτέλους admin.site.register(User, UserAdmin)
σημαίνει ναUser
Το μοντέλο και το backend συνδέονται μεταξύ τους.
Εκτελέστε το έργο και ανοίξτε http://127.0.0.1:8000/admin/
Και συνδεθείτε, μπορείτε να δείτε το μοντέλο που μόλις δέσατε.
Κάντε κλικ στο "Πίνακας χρηστών s" για να δείτε τις πληροφορίες σχετικά με αυτόν τον πίνακα στη βάση δεδομένων.
Μπορείτε να κάνετε κλικ στο κουμπί "Προσθήκη" για να προσθέσετε νέα δεδομένα σε αυτόν τον πίνακα.
Μπορείτε επίσης να τροποποιήσετε και να διαγράψετε καθορισμένα δεδομένα.
Τα τροποποιημένα δεδομένα στη σελίδα φόντου θα επηρεάσουν άμεσα τα δεδομένα στη βάση δεδομένων.
Με τον ίδιο τρόπο, βάλε blog
Το μοντέλο εφαρμογής σχετίζεται με το backend. Η λειτουργία εδώ είναι η ίδια με πριν, οπότε δεν θα το εξηγήσω ξανά.
```python
από το άρθρο εισαγωγής django.contrib από το άρθρο εισαγωγής blog.models
class ArticleAdmin(admin.ModelAdmin): # Περιεχόμενο προς εμφάνιση list_display = ['id', 'title']
admin.site.register(Article, ArticleAdmin) ```
Ας δημιουργήσουμε ένα άρθρο και ας ρίξουμε μια ματιά.
Κάντε κλικ στο κουμπί Προσθήκη δίπλα στους "Πίνακες πληροφοριών άρθρου" και συμπληρώστε το παρακάτω περιεχόμενο.
Κάντε κλικ SAVE
Αφού πατήσετε το κουμπί, τα δεδομένα εγγράφονται στη βάση δεδομένων Επιστρέψτε στη σελίδα της λίστας "Πίνακες πληροφοριών άρθρου" για να δείτε τα δεδομένα που μόλις γράφτηκαν.
Εάν δεν είστε σίγουροι για το περιεχόμενο ολόκληρου του έργου, μπορείτε να ανατρέξετε σε αυτό που συνέταξα"Στήλη Django"。
Στις προηγούμενες λειτουργίες, οι προσεκτικοί εργαζόμενοι μπορεί να έχουν παρατηρήσει κάποια προβλήματα, όπως γιατί η διεπαφή είναι στα αγγλικά; Γιατί υπάρχει ένα "s" μετά το όνομα του πίνακα;Γιατί το προαιρετικό πεδίο Χρήστης κατά τη δημιουργία ενός άρθρου δεν είναι το όνομα χρήστη, αλλάUser object(1)
?
Στη συνέχεια θα λύσουμε αυτά τα προβλήματα ένα προς ένα.
Ανοίξτε το έργο settings.py
αρχείο, βρέθηκεLANGUAGE_CODE
, ορίστε την τιμή του σε'zh-hans'
.και μετά βρείτεTIME_ZONE
ρυθμίστε το σεAsia/Shanghai
。
```python
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Ασία/Σανγκάη' ``
Αλλά αυτή τη στιγμή ACCOUNT
καιBLOG
Ακόμα στα αγγλικά, εδώDjango
Δεν μπορεί να μεταφραστεί απευθείας στα κινέζικα Πρέπει να διαμορφώσετε ψευδώνυμα για αυτές τις δύο εφαρμογές.
Η διαμόρφωση είναι στη δική της κάθε εφαρμογής apps.py
αρχείο, μέσωverbose_name
Μεταβλητή για την προσαρμογή του ονόματος της στήλης.
με account
Εφαρμόστε ως παράδειγμα.
```python
από το django.apps εισαγωγή AppConfig
κλάση AccountConfig(AppConfig): προεπιλογήαυτοfield = 'django.db.models.BigAutoField' name = 'account' verbose_name = 'User Management' ``
blog
Το ίδιο ισχύει και.
```python
από το django.apps εισαγωγή AppConfig
κλάση BlogConfig(AppConfig): προεπιλογήαυτοfield = 'django.db.models.BigAutoField' name = 'blog' verbose_name = 'Διαχείριση άρθρου' ``
Αυτή τη στιγμή, ανανεώστε τη σελίδα και θα δείτε ότι το όνομα της στήλης έχει αλλάξει.
Το "s" μετά το όνομα του πίνακα είναι Django
Έρχεται μαζί του Για να διαγράψετε αυτό το "s", πρέπει επίσης να διαμορφώσετε το ψευδώνυμο του πίνακα.
Στο αρχείο μοντέλου κάθε εφαρμογής (models.py
) έχει ρυθμιστεί σε Meta
ενημερωτικήverbose_name_plural
。
με account
Εφαρμόστε ως παράδειγμα.
```python
από μοντέλα εισαγωγής django.db
class User(models.Model): id = models.AutoField(κύριοkey=True) # username = models.CharField('όνομα χρήστη', μέγlength=30, null=True, blank=True, unique=True) # Password password = models.CharField('password', max_length=30) # Email email = models.EmailField('Email', unique=True, null= Αληθινό, κενό = Αλήθεια)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
Ανανεώστε τη σελίδα και θα δείτε ότι το "s" μετά τον "Πίνακας χρηστών" έχει φύγει.
blog
Ο ίδιος λόγος.
Όταν προσθέτουμε ένα άρθρο, πρέπει να εισάγουμε και να επιλέγουμε τον συγγραφέα του άρθρου Ο συγγραφέας του πίνακα άρθρων συσχετίζεται με τον πίνακα χρήστη.
Όταν προσθέτετε έναν συγγραφέα, η σελίδα εμφανίζει απευθείας το όνομα "Αντικείμενο χρήστη" Εάν αυξηθεί ο αριθμός των χρηστών, δεν θα μπορούμε να πούμε ποιος είναι ποιος.
Θα πρέπει να εμφανίσουμε το όνομα χρήστη.
Ας το τροποποιήσουμε πρώτα blog
Τα πεδία προς εμφάνιση.
```python
από το άρθρο εισαγωγής django.contrib από το άρθρο εισαγωγής blog.models
def get_author(obj): επιστροφή obj.user.username
class ArticleAdmin(admin.ModelAdmin): # Περιεχόμενο που θα εμφανιστεί # Μπορείτε να χρησιμοποιήσετε το πάρτε εδώ ο συγγραφέας αντικαθίσταται από το όνομα χρήστη. Δεν χρειάζεται να προσθέσετε μεμονωμένα εισαγωγικά ή παρενθέσεις εδώ. Το # django χρησιμοποιεί λίστα Κατά την εμφάνιση, μια παράμετρος θα μεταβιβαστεί στη μέθοδο από προεπιλογή. λίσταdisplay = ['id', getσυγγραφέας, 'τίτλος', 'περιεχόμενο']
παίρνωσυγγραφέας.σύντομηπεριγραφή = 'Συγγραφέας'
admin.site.register(Article, ArticleAdmin) ```
Συσχετίστε το ξένο κλειδί με τη μέθοδο get_author username
Εμφανίζονται τα πεδία.
Σε αυτό το σημείο θα μπορέσουμε να δούμε ποιος είναι ο συγγραφέας αυτού του άρθρου. Πρέπει όμως να εμφανίσουμε το όνομα χρήστη στη σελίδα επεξεργασίας.
Χρειάζεται τροποποίηση αυτή τη στιγμή User
Μόνο τα μοντέλα θα το κάνουν.
```python
από μοντέλα εισαγωγής django.db
class User(models.Model): id = models.AutoField(κύριοkey=True) # username = models.CharField('όνομα χρήστη', μέγlength=30, null=True, blank=True, unique=True) # Password password = models.CharField('password', max_length=30) # Email 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
Για παράδειγμα, θέλω να κάνω κλικ στο "ΤΙΤΛΟΣ" για να μεταβώ στη σελίδα επεξεργασίας.
```python
class ArticleAdmin(admin.ModelAdmin): # Λίστα περιεχομένου που θα εμφανίζεταιdisplay = ['id', getσυγγραφέας, 'τίτλος', 'περιεχόμενο'] # λίστα πεδίων με δυνατότητα άλματοςαπεικόνισησύνδεσμοι = ['id', 'title'] # Παραλείψτε κάποιο κωδικό```
είμαι εδώ ArticleAdmin
προστέθηκεlist_display_links = ['id', 'title']
, υποδεικνύοντας κλικ id
καιtitle
Μπορείτε να μεταβείτε στη σελίδα επεξεργασίας.
Κατά την επεξεργασία περιεχομένου, δεν θέλουμε ορισμένα πεδία να μπορούν να τροποποιηθούν. Για παράδειγμα, το αναγνωριστικό ιστολογίου δεν μπορεί να τροποποιηθεί.
επιτρεπόμενος blog/admin.py
Προσθέτωreadonly_fields
Καθορίζει πεδία που δεν μπορούν να τροποποιηθούν.
```python
class ArticleAdmin(admin.ModelAdmin): # Χαρακτηριστικό μόνο για ανάγνωση readonly_fields = ['id'] # Παράλειψη κάποιου κώδικα```
Κατά την επεξεργασία αυτή τη στιγμή, η τιμή του πεδίου id δεν μπορεί να τροποποιηθεί.
Αυτά είναι όλα για αυτό το άρθρο. Στο επόμενο άρθρο, θα παρουσιάσω τον τρόπο φόρτωσης των πληροφοριών στη βάση δεδομένων στην πρώτη σελίδα.
Μου αρέσει + Ακολουθήστε + Συλλέξτε = Έμαθα