webentwicklung-frage-antwort-db.com.de

Wie füge ich Daten aus der Datei views.py in die Datenbank Django ein?

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:

  • python 3.4
  • Django 1.8.2
  • PyMySQL

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.

10
niloofar

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')
19
ilse2005

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))
11
Kristof Claes

sie können dies versuchen:

def myFunction(request):
    myObj = MyObjectType()
    myObj.customParameter = parameterX
    ...
    myObj.save()
3
Peter Grundner