Teknologian jakaminen

"Django" sisältää oman taustansa

2024-07-12

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


teema: smartblue

Johdatus tähän artikkeliin

Tykkää + Seuraa + Kerää = Opittu

00.png

Siitä puhuttiin edellisessä artikkelissa Django toimiaMySQL Menetelmässä kerrotaan, miten malli luodaan ja kuinka tietokantaa lisätään, poistetaan, muokataan ja haetaan. Mutta sinun on kirjoitettava koodi aina, kun muutat tietoja, mikä on hieman hankalaa.

Onko olemassa yksinkertaisempaa tapaa?

Jotkut, jotkut,Django Itse asiassa sen mukana tulee taustaohjelma, joka on graafinen käyttöliittymä ja jolla voit helposti käyttää erilaisia ​​​​tietosisältöjä.

Puhutaan seuraavaksi tämän sisäänrakennetun taustaohjelman käyttämisestä.

Määritä taustareititysosoite

Itse asiassa luomassa Django Projektin aikana olemme jo konfiguroineet meille taustalla olevan reititysosoitteen.

Jos noudatat edellistä artikkeliani vaihe vaiheelta, taustareititys voidaan poistaa. Sillä ei ole väliä, keksi vain.

Avaa projekti urls.py tiedosto, löytyiurlpatterns Tätä muuttujaa käytetään taustareitityksen täyttämiseen.

``` python

Urls.py-projektin reititystiedosto

osoitteesta django.urls tuontipolku osoitteesta blog.views tuonti blogIndex

urlpatterns = [ # Muut reitit jätetään pois # Seuraava lause on reitityspolku taustan määrittämistä varten ('admin/', admin.site.urls) ] ```

Kun määritys on valmis, käynnistä projekti ja avaa se selaimessa http://127.0.0.1:8000/admin/ Näet kirjautumissivun taustalla.

01.png

Luo järjestelmänvalvojan tili

Jos kirjautumissivu on olemassa, sinulla on oltava vastaava tili kirjautuaksesi sisään.

Joten meidän on ensin luotava superhallintatili.

Avaa pääte, siirry projektihakemistoon ja anna seuraava komento luodaksesi superhallintatilin.

python manage.py createsuperuser

Sitten pääte palauttaa sinulle tämän tietorivin ja pyytää sinua syöttämään päähallinnan käyttäjänimen (tilin)

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

'xxx' tässä on tietokoneeni nimi, voit kirjoittaa superhallintatilin kaksoispisteen jälkeen.Mitä kirjoitin tänne, onadmin

Kun olet syöttänyt käyttäjätunnuksesi, se pyytää sinua edelleen antamaan sähköpostiosoitteesi.

Email address: 123@qq.com

Kun olet syöttänyt sähköpostiosoitteesi, sinua pyydetään antamaan salasana kahdesti.

  1. Password:
  2. Password (again):

Salasana, jonka kirjoitan tähän, on 12345678, se muistuttaa minua älykkäästi liian yleisistä salasanoista, mutta kirjoitan y ja pysyn niin yksinkertaisissa salasanoissa.

  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.

Katso Superuser created successfully. Tämä lause tarkoittaa, että tili on luotu onnistuneesti.

Avaa nyt selaimessa http://127.0.0.1:8000/admin/, tilin syöttö admin, salasanan syöttö 12345678 Voit kirjautua sisään onnistuneesti.

02.png

Malliyhdistyksen tausta

Olemme aiemmin käyttäneet koodia tietokannan käyttöön, mikä ei ole niin kätevää.

Django Tarjoaa tavan sitoa sovellusmalli taustalle, jotta voimme suoraan käyttää tietoja taustarajapinnassa.

Luotu edellisestä artikkelista account Käytä esimerkkinä.

olla olemassa account löytyy sovelluksestaadmin.py tiedosto, kirjoita seuraava koodi.

``` python

account/admin.py

osoitteesta django.contrib tuonti admin osoitteesta account.models tuonti käyttäjä

class UserAdmin(admin.ModelAdmin): # Näytettävä sisältö list_display = ['käyttäjänimi', 'sähköposti']

Sido User-malli UserAdminiin

admin.site.register(User, UserAdmin) ```

Se on esiteltävä täällä ensin admin jaUser, koska haluamme account Sovellusmalli liittyy taustajärjestelmään.

Luo tiedosto nimeltä UserAdmin Luokka, kirjoita se siihenlist_display = ['username', 'email'] , mikä tarkoittaa näkyvää taustasivullausername jaemail nämä kaksi kenttää.

viimeinkin admin.site.register(User, UserAdmin) tarkoittaaUser Malli ja taustaosa on sidottu yhteen.

Suorita projekti ja avaa http://127.0.0.1:8000/admin/ Ja kirjaudu sisään, näet juuri sitomasi mallin.

03.png

Napsauta "Käyttäjätaulukot" nähdäksesi tiedot tästä taulukosta tietokannassa.

04.png

Voit lisätä uusia tietoja tähän taulukkoon napsauttamalla Lisää-painiketta.

05.png

Voit myös muokata ja poistaa tiettyjä tietoja.

06.png

Muokatut tiedot taustasivulla vaikuttavat suoraan tietokannan tietoihin.

Laita samalla tavalla blog Sovellusmalli liittyy taustajärjestelmään. Toiminta tässä on sama kuin ennen, joten en selitä sitä uudelleen.

``` python

blogi/admin.py

osoitteesta django.contrib tuonti admin osoitteesta blog.models tuonti artikkeli

Rekisteröi mallisi täällä.

class ArticleAdmin(admin.ModelAdmin): # Näytettävä sisältö list_display = ['id', 'title']

Sido User-malli UserAdminiin

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

07.png

Luodaan artikkeli ja katsotaan.

Napsauta "Artikkelitietotaulukot" -kohdan vieressä olevaa Lisää-painiketta ja täytä seuraava sisältö.

08.png

Klikkaus SAVE Painikkeen painamisen jälkeen tiedot kirjoitetaan tietokantaan. Palaa "Artikkelitietotaulukot" -luettelosivulle nähdäksesi juuri kirjoitetut tiedot.

09.png

Jos et ole varma koko projektin sisällöstä, voit katsoa, ​​mitä kokosin"Django-pylväs"

Taustajärjestelmän peruskokoonpano

Aiemmissa toimissa tarkkaavaiset työntekijät ovat saattaneet huomata ongelmia, kuten miksi käyttöliittymä on englanninkielinen? Miksi taulukon nimen jälkeen on "s"?Miksi valinnainen Käyttäjä-kenttä artikkelia luotaessa ei ole käyttäjänimi vaanUser object(1)

Seuraavaksi ratkaisemme nämä ongelmat yksitellen.

Aseta aikavyöhyke ja kieli

Avaa projekti settings.py tiedosto, löytyiLANGUAGE_CODE , aseta sen arvoksi'zh-hans' .ja sitten löytääTIME_ZONE aseta se päälleAsia/Shanghai

``` python

settings.py

Kieli

LANGUAGE_CODE = 'zh-hans'

Aikavyöhyke

TIME_ZONE = 'Aasia/Shanghai' ```

10.png

Muuta sarakkeen nimi kiinaksi

Mutta tällä kertaa ACCOUNT jaBLOG Täällä vielä englanniksiDjango Sitä ei voi kääntää suoraan kiinaksi Sinun on määritettävä aliakset näille kahdelle sovellukselle.

11.png

Kokoonpano on jokaisen sovelluksen omassa apps.py tiedosto, läpiverbose_name Muuttuja sarakkeen nimen mukauttamiseen.

kirjoittaja account Käytä esimerkkinä.

``` python

account/apps.py

django.appsista tuo AppConfig

luokka AccountConfig(AppConfig): oletusautofield = 'django.db.models.BigAutoField' name = 'tili' verbose_name = 'Käyttäjien hallinta' ```

blog Sama pätee.

``` python

blogi/apps.py

django.appsista tuo AppConfig

luokka BlogConfig(AppConfig): oletusautofield = 'django.db.models.BigAutoField' name = 'blogi' verbose_name = 'Artikkelinhallinta' ```

Päivitä sivu tällä hetkellä, niin näet, että sarakkeen nimi on muuttunut.

12.png

poista monikkomuoto

"s" taulukon nimen jälkeen on Django Sen mukana tulee poistaaksesi tämän "s":n, sinun on myös määritettävä taulukon alias.

Jokaisen sovelluksen mallitiedostossa (models.py) määritetty sisään Meta tiedottavaverbose_name_plural

kirjoittaja account Käytä esimerkkinä.

``` python

account/models.py

django.db tuontimalleista

Luo käyttäjätaulukko

luokka Käyttäjä(mallit.Malli): id = mallit.Automaattinen kenttä(ensisijainenkey=True) # username = models.CharField('käyttäjänimi', maxpituus=30, null=True, blank=True, ainutlaatuinen=True) # Salasanasalasana = models.CharField('salasana', max_length=30) # Sähköpostiosoite = models.EmailField('Sähköposti', unique=True, null= Totta, tyhjä = Totta)

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

```

Päivitä sivu, niin näet, että "s" "Käyttäjätaulukon" jälkeen on poissa.

13.png

blog Sama syy.

Näytä vieraiden avainten kentät

Kun lisäämme artikkelin, meidän on syötettävä ja valittava artikkelin kirjoittaja. Artikkelitaulukon kirjoittaja liitetään käyttäjätaulukkoon.

Kun lisäät tekijän, sivu näyttää suoraan nimen "Käyttäjäobjekti".

14.png

Meidän pitäisi näyttää käyttäjätunnus.

Muokataan sitä ensin blog Näytettävät kentät.

``` python

blogi/admin.py

osoitteesta django.contrib tuonti admin osoitteesta blog.models tuonti artikkeli

Hanki kirjoittaja

Tätä obj-objektia käytetään artikkeliinstanssien vastaanottamiseen

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

Rekisteröi mallisi täällä.

luokka ArtikkeliAdmin(admin.ModelAdmin): # Näytettävä sisältö # Voit käyttää get here tekijä korvataan käyttäjätunnuksella. Tähän ei tarvitse lisätä yksittäisiä lainausmerkkejä tai sulkeita. # django käyttää listaa Näytettäessä menetelmälle parametri välitetään oletusarvoisesti. listanäyttö = ['id', gettekijä, 'nimi', 'sisältö']

saadakirjoittaja.lyhytkuvaus = 'Kirjoittaja'

Sido User-malli UserAdminiin

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

Yhdistä vierasavain get_author-menetelmään username Kentät näytetään.

15.png

Tässä vaiheessa voimme nähdä, kuka tämän artikkelin kirjoittaja on. Mutta meidän on silti näytettävä käyttäjänimi muokkaussivulla.

Tarvitsee muokata tällä hetkellä User Vain mallit käyvät.

``` python

account/models.py

django.db tuontimalleista

Luo käyttäjätaulukko

luokka Käyttäjä(mallit.Malli): id = mallit.Automaattinen kenttä(ensisijainenkey=True) # username = models.CharField('käyttäjänimi', maxpituus=30, null=True, blank=True, ainutlaatuinen=True) # Salasanasalasana = models.CharField('salasana', max_length=30) # Sähköpostiosoite = models.EmailField('Sähköposti', unique=True, null= Totta, tyhjä = Totta)

  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

```

olla olemassa account/models.py Lisää lopussa__str__ menetelmä, palautususername

Tällä hetkellä käyttäjänimi näkyy artikkelitietojen muokkaussivulla.

16.png

Mukautetut muokattavat hyppylinkit

Artikkelinhallintasivulla, jos haluat muokata artikkelia, voit napsauttaa vain "ID"-kenttää siirtyäksesi muokkaussivulle.Jos haluat siirtyä muokkaussivulle napsauttamalla muita kenttiä, sinun on määritettävä se manuaalisesti.blog/admin.py Haluan esimerkiksi napsauttaa "TITLE" siirtyäkseni muokkaussivulle.

17.png

``` python

blogi/admin.py

Jätä joku koodi pois

luokka Artikkelinhallinta(admin.ModelAdmin): # Luettelo näytettävästä sisällöstänäyttö = ['id', getauthor, 'title', 'content'] # hyppykenttien luettelonäyttölinks = ['id', 'title'] # Jätä jokin koodi pois```

olen täällä ArticleAdmin lisätty sisäänlist_display_links = ['id', 'title'], joka osoittaa napsautuksella id jatitle Voit siirtyä muokkaussivulle.

vain luku -attribuutti

Kun muokkaat sisältöä, emme halua joidenkin kenttien olevan muokattavissa. Esimerkiksi blogin tunnusta ei voi muuttaa.

sallittu blog/admin.py Lisätäreadonly_fields Määrittää kentät, joita ei voi muokata.

``` python

blogi/admin.py

Jätä joku koodi pois

class ArticleAdmin(admin.ModelAdmin): # Vain luku -attribuutti readonly_fields = ['id'] # Jätä koodi pois````

Tällä hetkellä muokatessa id-kentän arvoa ei voi muuttaa.

18.png


Siinä kaikki tälle artikkelille. Seuraavassa artikkelissa esittelen kuinka ladata tietokannan tiedot etusivulla.

IMG_8982.GIF

Tykkää + Seuraa + Kerää = Opittu