Comment insérer des données à la base de données de django views.py fichier?
Comment puis-je insérer les données dans ma base de données de django à partir d'une fonction dans les points de vue,py fichier? Est python manage.py shell
la seule façon de l'insérer??
Pour plus d'explications, je suis en utilisant:
- python 3.4
- django 1.8.2
- PyMySQL
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
de niloofar.vues d'importation envoyer
url(r'^index/', envoyer),
Je veux quand l'index de la page est chargée, la fonction d'envoi des œuvres et insérer les données dans la base de données.
Il ne fonctionne pas. Il ne donne pas d'erreur et aussi rien ne s'est passé quand j'ai actualisé la page d'index, rien n'a été envoyée à la base de données. Je pense qu'il y a erreur dans la syntaxe, dans la façon dont je suis en train d'essayer d'insérer des données.
Permettez-moi de faire remarquer que même quand je lance python manage.py shell
alors:
de livres.importation de modèles Éditeur
p = Éditeur(nom='Apress', ville='Berkeley')
p.save()
rien ne sera inséré à la base de données de django.
Bienvenue sur stackoverflow, 'stackoverflow.com/questions/35472057/... " Get a commencé avec django tutoriel première.
Il ne suffit pas d'écrire "il ne fonctionne pas". Ce qui se passe exactement? Comment est-il différent de vos attentes? Ne vous obtenez des messages d'erreur? Que disent-ils? À partir de votre code d'exemple, il semble que vous avez oublié de le nom de votre point de vue (il devrait y avoir un nom avant la parenthèse dans la ligne de
def (request):
)Désolé j'ai mis à jour ma question.
OriginalL'auteur niloofar | 2016-02-24
Vous devez vous connecter pour publier un commentaire.
Votre question est très floue. Vous devriez probablement passer par la django-tutoriel.
Mais bien sûr, vous pouvez insérer des données dans la db, à partir de points de vue. Supposons que vous disposez d'un modèle appelé
Foo
:models.py
view.py
publisher_instance = Publisher.object.create(name='test')
- Il montrer cette erreurtype object 'Publisher' has no attribute 'object'
.Désolé, il y avait une faute de frappe. Il devrait être
Publisher.objects.create(name='test')
objets (pas d'objet). J'ai édité ma réponseJ'ai essayé
def send(request):
publisher_instance = Publisher.objects.create(name='tux')
return HttpResponse("done")
et le "fait" mot imprimé dans la page, mais rien n'a été envoyée dbEh bien, je ne sais pas comment, mais il a travaillé après le redémarrage du système, merci.
si la réponse vous a aidé, merci de l'accepter. Merci!
OriginalL'auteur ilse2005
Il vous suffit de créer une instance de l'un de vos modèles et de l'enregistrer. Supposons que vous avez un Article modèle:
OriginalL'auteur Kristof Claes
vous pouvez essayer ceci:
OriginalL'auteur Peter Grundner