Django Modell
Django bietet eine gute Auswahl an Datenbankunterstützung, einschließlich: PostgreSQL, MySQL, SQLite, Oracle.
Django bietet eine einheitliche API-Aufrufe für diese Datenbanken. Wir können je nach ihren geschäftlichen Anforderungen unterschiedliche Datenbank wählen.
MySQL ist die am häufigsten verwendete Web-Anwendung Datenbank. In diesem Kapitel werden wir als Beispiel mySQL wird vorgestellt. Sie können Website MySQL Tutorial mehr Mysql Grundlagen zu erlernen.
Datenbankkonfiguration
Wir finden DATABASES Konfigurationselemente in settings.py Datei für das Projekt, wird seine Informationen revidiert werden:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'test', 'PASSWORD': 'test123', 'HOST':'localhost', 'PORT':'3306', } }
Die oben enthält den Namen der Datenbank und Benutzerinformationen, die auf die gleichen MySQL-Datenbank und Benutzereinstellungen entspricht. Django Gemäß dieser Einstellung, die MySQL-Datenbank und die entsprechenden Benutzer verbindet.
Definition Model
erstellen APP
Django sieht vor, dass, wenn Sie das Modell nutzen möchten, wir eine App erstellen müssen. Wir verwenden den folgenden Befehl ein TestModel die App zu erstellen:
python manage.py startapp TestModel
Verzeichnisstruktur ist wie folgt:
HelloWorld |-- TestModel | |-- __init__.py | |-- admin.py | |-- models.py | |-- tests.py | `-- views.py
Wir ändern TestModel / models.py Datei wie folgt:
# models.py from django.db import models class Test(models.Model): name = models.CharField(max_length=20)
Oberhalb der Klassenname einer Datenbanktabelle Namen repräsentiert, und erbte models.Model, Klasse innerhalb des Feldes stellt die Daten Tabellenfelder (Name), den Datentyp von CharField (äquivalent zu varchar), Datefield (entspricht datetime), max_length Parameter definierte Länge.
Als nächstes INSTALLED_APPS diese in settings.py finden wie folgt:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'TestModel', # 添加此项 )
Führen Sie das Python manage.py syncdb Befehlszeile finden Sie die Wortleitungen "Erstellen Tabelle ...", und Ihre Datentabelle erstellt wurde.
Creating tables ... …… Creating table TestModel_test #我们自定义的表 ……
Zusammensetzung Tabellenstruktur: App-Name _ der Klassenname (zB: TestModel_test).
Hinweis: Auch wenn wir auf die Tabelle den Primärschlüssel nicht die Modelle, aber Django fügt automatisch eine ID als Primärschlüssel.
Datenbank-Operationen
Als nächstes fügen wir testdb.py Verzeichnisdatei Hello World und ändern urls.py:
from django.conf.urls import * from HelloWorld.view import hello from HelloWorld.testdb import testdb urlpatterns = patterns("", ('^hello/$', hello), ('^testdb/$', testdb), )
Hinzufügen von Daten
Hinzufügen von Daten müssen Sie ein Objekt erstellen, und führen Sie dann die Funktion zu speichern, das Äquivalent der SQL INSERT:
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作 def testdb(request): test1 = Test(name='w3cschool.cc') test1.save() return HttpResponse("<p>数据添加成功!</p>")
Sie können die Datenzugriffs http://192.168.45.3:8000/testdb/ sehen einen schnellen Erfolg hinzuzufügen.
Erhalten Sie Daten
Django bietet verschiedene Möglichkeiten, um den Inhalt der Datenbank zu erhalten, wie in den folgenden Code dargestellt:
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作 def testdb(request): # 初始化 response = "" response1 = "" # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM list = Test.objects.all() # filter相当于SQL中的WHERE,可设置条件过滤结果 response2 = Test.objects.filter(id=1) # 获取单个对象 response3 = Test.objects.get(id=1) # 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2; Test.objects.order_by('name')[0:2] #数据排序 Test.objects.order_by("id") # 上面的方法可以连锁使用 Test.objects.filter(name="w3cschool.cc").order_by("id") # 输出所有数据 for var in list: response1 += var.name + " " response = response1 return HttpResponse("<p>" + response + "</p>")
Der Ausgang ist unten dargestellt:
Daten aktualisieren
Sie können die Daten mit save () oder Update () zu ändern:
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作 def testdb(request): # 修改其中一个id=1的name字段,再save,相当于SQL中的UPDATE test1 = Test.objects.get(id=1) test1.name = 'w3cschool本教程' test1.save() # 另外一种方式 #Test.objects.filter(id=1).update(name='w3cschool本教程') # 修改所有的列 # Test.objects.all().update(name='w3cschool本教程') return HttpResponse("<p>修改成功</p>")
Daten löschen
Gelöschte Objekte in der Datenbank rufen Sie einfach die Methode delete () des Objekts:
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作 def testdb(request): # 删除id=1的数据 test1 = Test.objects.get(id=1) test1.delete() # 另外一种方式 # Test.objects.filter(id=1).delete() # 删除所有数据 # Test.objects.all().delete() return HttpResponse("<p>删除成功</p>")