2017-06-13 32 views
0

我有我的分貝這個寄存器追單場:的Django如何從sqlite3的

id nome email   senha 
2 teste [email protected] 1234 

我試圖恢復從表中的「senha」,我嘗試使用rawqueryes

usuario = request.GET.get('enderecoEmail') -- [email protected] 
senha2 = Usuario.objects.raw('select senha from projeto_usuario where email = %s',[usuario]) 

只是爲了測試我送參數到HTML只是打印

return render(request, 'projeto/teste.html',{'senha':senha2,'usuario':usuario}) 

但是什麼我得到的結果,我小號

<RawQuerySet: select senha from projeto_usuario where email = [email protected]> 

我想知道我怎麼可以檢索字段從sqlite3的,我一直在閱讀整個文件,但我真的不知道我失蹤

+1

你應該這樣做,而不是使用原始的SQL。 'senha = Usuario.objects.get(email = usario).senha' – Brobin

+0

它的工作,但是,沒有任何方式使用sql語句?我將不得不執行大量比這個更復雜的sql語句 –

+0

是的,您可以使用sql語句,但使用ORM通常更安全。如果您使用原始sql,併爲其使用用戶輸入,則可能會變得容易受到SQL注入攻擊。這是關於[使用ORM進行查詢]的django文檔(https://docs.djangoproject.com/en/1.11/topics/db/queries/) – Brobin

回答

1
senha2 = Usuario.objects.raw('select senha from projeto_usuario where email = %s',[usuario]) 

代替上述用下面的代碼

senha2= Usuario.objects.get(email=usuario) 
senha2 = senha2.senha 
+0

它的工作原理,但是,沒有任何方法可以使用sql語句?我將不得不執行很多比這個更復雜的sql語句 –

+0

是的,您可以在django中使用sql語句,但django具有良好的orm,可以輕鬆執行大多數操作。 –