Hur man integrerar Django med en äldre databas¶
Även om Django är bäst lämpat för att utveckla nya applikationer är det fullt möjligt att integrera det i äldre databaser. Django innehåller ett par verktyg för att automatisera så mycket som möjligt av denna process.
Detta dokument förutsätter att du känner till grunderna i Django, som beskrivs i tutorial.
När du har konfigurerat Django följer du den här allmänna processen för att integrera med en befintlig databas.
Ge Django dina databasparametrar¶
Du måste berätta för Django vad dina databasanslutningsparametrar är och vad namnet på databasen är. Gör det genom att redigera inställningen DATABASES
och tilldela värden till följande nycklar för 'default'
-anslutningen:
Autogenerera modellerna¶
Django levereras med ett verktyg som heter inspectdb
som kan skapa modeller genom att introspektera en befintlig databas. Du kan visa utdata genom att köra detta kommando:
$ python manage.py inspectdb
Spara detta som en fil med hjälp av Unix standard omdirigering av utdata:
$ python manage.py inspectdb > models.py
Denna funktion är tänkt som en genväg, inte som en definitiv modellgenerering. Se dokumentation av inspectdb
för mer information.
När du har rensat upp dina modeller, namnge filen models.py
och lägg den i Python-paketet som innehåller din app. Lägg sedan till appen i din INSTALLED_APPS
-inställning.
Som standard skapar inspectdb
ohanterade modeller. Det vill säga, managed = False
i modellens Meta
-klass säger till Django att inte hantera varje tabells skapande, modifiering och borttagning:
class Person(models.Model):
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=70)
class Meta:
managed = False
db_table = "CENSUS_PERSONS"
Om du vill tillåta Django att hantera tabellens livscykel måste du ändra alternativet managed
ovan till True
(eller ta bort det eftersom True
är dess standardvärde).
Installera Djangos kärntabeller¶
Kör sedan kommandot migrate
för att installera eventuella extra databasposter som behövs, t.ex. administratörsbehörigheter och innehållstyper:
$ python manage.py migrate
Testa och justera¶
Det här är de grundläggande stegen - härifrån vill du justera de modeller som Django genererade tills de fungerar som du vill. Försök att komma åt dina data via Djangos databas-API och försök att redigera objekt via Djangos admin-webbplats och redigera modellfilen i enlighet därmed.