2017-03-08 3 views
-2

Je veux effectuer custome sql requête sur la table de base de données mysql pour stocker l'enregistrement .Quel est le moyen d'effectuer une requête d'insertion via rawsql.Insérer dans la base de données mysql via Rawsql

J'utilise le modèle suivant

class Student(models.Model): 
    userid = models.CharField(db_column='UserId', primary_key=True, max_length=12) # Field name made lowercase. 
    firstname = models.CharField(db_column='FirstName', max_length=30) # Field name made lowercase. 
    middlename = models.CharField(db_column='MiddleName', max_length=30, blank=True, null=True) # Field name made lowercase. 
    lastname = models.CharField(db_column='LastName', max_length=30) # Field name made lowercase. 
    password = models.CharField(db_column='Password', max_length=50, blank=True, null=True) # Field name made lowercase. 

et en essayant d'insérer des valeurs par la méthode brute parce que veulent stocker passwoed par md5('') fourni par mysql:

st = Student.object.raw("Insert into Student values(%s,%s,%s,%s,md5(%s))",['ST1','Fname','Mname','Lname','Pwd']); 

mais je ne reçois pas comment exécuter Est-ce qu'il y a un moyen?

+0

Je ne sais pas si '' raw' ne INSERT's, mais vous devriez lire plus ici - https://docs.djangoproject.com/en/1.10/topics/ db/sql/# executing-custom-sql-directement –

+0

Veuillez également lire la documentation de StackOverflow sur la façon de poser de bonnes questions. Vous pouvez le trouver ici http://stackoverflow.com/help/how-to-ask Les gens ici sont généralement très utiles, mais il est considéré comme quelque peu impoli de leur demander de faire votre travail gratuitement. Pour éviter cela, montrez que vous avez fait des efforts pour essayer de résoudre votre problème en fournissant un code de ce que vous avez essayé jusqu'à présent et en décrivant où vous êtes bloqué. Cela permettra aux gens de vous aider avec moins d'effort, ce qui augmentera vos chances d'obtenir une très bonne réponse. – sobek

Répondre

2

Voici un exemple simple:

from django.db import connections 

cursor = connections['default'].cursor() 
cursor.execute("INSERT INTO TABLE(field1,field2) VALUES(%s , %s)", [value1, value2])