Comment puis-je insérer des données dans ma base de données Django à partir d'une fonction dans le fichier vues, py? python manage.py Shell
la seule façon d'insérer?
Pour plus d'explications que j'utilise:
Par exemple:
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
à partir de niloofar.views importation envoyer
url (r '^ index /', envoyer),
Je veux que lorsque l'index de page est chargé, la fonction d'envoi fonctionne et insère des données dans la base de données.
Ça ne marche pas. Cela ne donne aucune erreur et rien ne s'est produit lorsque j'ai actualisé la page d'index, rien n'a été envoyé à la base de données. Je pense qu'il y a une erreur de syntaxe, dans la façon dont j'essaie d'insérer des données.
Permettez-moi de remarquer que même lorsque je lance python manage.py Shell
puis:
de books.models import Publisher
p = éditeur (nom = 'Apress', ville = 'Berkeley')
p.save ()
rien ne sera inséré dans la base de données Django.
Votre question n'est pas très claire. Vous devriez probablement passer par le Django-tutorial .
Mais bien sûr, vous pouvez insérer des données dans la base de données à partir des vues. Supposons que vous ayez un modèle appelé 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')
Vous pouvez simplement créer une instance de l'un de vos modèles et l'enregistrer. Supposons que vous ayez un modèle d'article:
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))
vous pouvez essayer ceci:
def myFunction(request):
myObj = MyObjectType()
myObj.customParameter = parameterX
...
myObj.save()