Wie kann ich Daten in meine Django Datenbank einfügen? Ist python manage.py Shell
die einzige Möglichkeit zum Einfügen?
Für weitere Erklärungen verwende ich:
Beispielsweise:
models.py:
from Django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=60)
views.py:
from Django.http import HttpResponse
import pymysql
from books.models import Publisher
def send(request):
p = Publisher(name='Apress', city='Berkeley')
p.save()
urls.py
aus niloofar.views importieren senden
url (r '^ index /', send),
Ich möchte, dass beim Laden des Seitenindex die Sendefunktion funktioniert und Daten in die Datenbank eingefügt werden.
Es funktioniert nicht. Es gibt keinen Fehler und es ist auch nichts passiert, als ich die Indexseite aktualisiert habe. Es wurde nichts an die Datenbank gesendet. Ich denke, es liegt ein Fehler in der Syntax vor, wenn ich versuche, Daten einzufügen.
Lass es mich bemerken, auch wenn ich laufe python manage.py Shell
dann:
aus books.models importieren Publisher
p = Verlag (Name = 'Apress', Stadt = 'Berkeley')
p.save ()
es wird nichts in die Django Datenbank eingefügt.
Ihre Frage ist sehr unklar. Sie sollten wahrscheinlich das Django-Tutorial durchgehen.
Aber sicher können Sie Daten aus Views in die Datenbank einfügen. Angenommen, Sie haben ein Modell namens Foo
:
models.py
class Foo(models.Model):
name = models.CharField(max_length=100)
view.py
from .models import Foo
def some_name(request):
foo_instance = Foo.objects.create(name='test')
return render(request, 'some_name.html.html')
Sie können einfach eine Instanz eines Ihrer Modelle erstellen und speichern. Angenommen, Sie haben ein Artikelmodell:
from Django.http import HttpResponse
from Django.template import loader
from .models import Article
def index(request):
article = Article()
article.title = 'This is the title'
article.contents = 'This is the content'
article.save()
template = loader.get_template('articles/index.html')
context = {
'new_article_id': article.pk,
}
return HttpResponse(template.render(context, request))
sie können dies versuchen:
def myFunction(request):
myObj = MyObjectType()
myObj.customParameter = parameterX
...
myObj.save()