django-modelsAan de slag met django-modellen


Opmerkingen

Deze sectie geeft een overzicht van wat django-modellen zijn en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen django-modellen vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor django-modellen nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Django Model voorbeeld

Een eenvoudig voorbeeld zou zijn voor een applicatie voor bibliotheekbeheer; je zou 2 modellen hebben, bijvoorbeeld student en book

in models.py:

from django.db import models

class student(models.Model):
    roll_no = models.IntegerField(primary_key=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
 

Hier hebben we roll_no een primaire sleutel gegeven aan het studentenmodel, maar zelfs als we geen primaire sleutel geven aan een attribuut, zou Django automatisch een attribuut genaamd id toewijzen, dat automatisch zou worden toegewezen en verhoogd bij het maken van nieuwe rijen .

Nu kunt u dit model gewoon in uw views of in een project importeren en ermee communiceren door eenvoudig een object van dat model te maken.

Django heeft veel ingebouwde velden beschikbaar, of u kunt ook uw eigen velden maken.

Django ondersteunt ook relaties tussen modellen, many-to-many , one-to-one , many-to-one .

Django gedetailleerde doc. Voor modellen

Installatie of instellingen

Over het algemeen wordt elk model toegewezen aan een enkele databasetabel. We schrijven het veldtype, de limieten, de grootte, enz. In het model.py-bestand van de app. Hiermee worden de benodigde tabel en velden in de database gemaakt.

'''   models.py    '''
from django.db import models
    
    class table_name(models.Model):
        field_name= models.field_type(conditions)
 

Vervolgens moeten we Django in settinggs.py informeren over de app die dit model gaat gebruiken.

    '''  settinggs.py  ''''
    
    INSTALLED_APPS = [
    #...
    'app_name',
    #...    ]
 

We zijn bijna klaar. Vervolgens moeten we deze app migreren zodat databasetabellen worden gemaakt. In terminaltype het volgende:

python manage.py migrate
 

migrate u de benodigde databases door de app_installed in setting.py vinken

Door makemigrations kent Django de wijzigingen die in de modellen zijn aangebracht.

python manage.py makemigrations
 

Dat is het. Uw database is gemaakt en u kunt het schema in de terminal zien

python manage.py sqlmigrate app_name 0001
 

Wat zijn Django-modellen?

Een Django model verwijst meestal naar een tabel in de database, kenmerken van dat model worden de kolom van die tabel. In een meer realistisch voorbeeld zou u een model maken voor elke entiteit in uw toepassing en de attributen opslaan met django fields die automatisch datatypeconversies voor de database die u zou gebruiken, afhandelt.

Een van de geweldige functies voor Django is de ORM , u hoeft geen databasequery te schrijven, en zelfs het wordt afgeraden er een te schrijven wanneer u Django gebruikt. ORM converteert uw Django models en alle bewerkingen die u ermee uitvoert naar de bijbehorende databasequery's. Dit betekent dat alle manipulatie die je moet doen, nu met de python-objecten die zijn gemaakt op basis van dat model, en alle onderliggende database-dingen zouden worden verzorgd door Django's ORM . Er zijn een aantal tweaks en aanpassingen die je ermee kunt doen.

De ORM Django ondersteunt alle belangrijke databases zoals Postgres , MySQL , sqlite3 en andere databases met de juiste stuurprogramma's. Dit betekent ook dat u niet hoeft te schelen welke onderliggende database u gebruikt, of zelfs als u van de ene naar de andere database wilt overschakelen, u kunt dit doen zonder een enkele regel van uw applicatielogica te wijzigen, gewoon de databasetekenreeks wijzigen van settings.py , dump de oude gegevens en je zou goed moeten zijn om te gaan.