django에서 데이터를 업데이트하는 몇 가지 방법 비교
3399 단어 django
user = Test.objects.filter(name=' ')[0]
user.phone = '18822221111'
user.save()
user = Test.objects.get(name=' ')
user.phone = '18822221111'
user.save()
Test.objects.filter(name=' ').update(phone='18822221111')
우리는django가 이때 어떤 처리를 했는지 살펴보자.
connection을 사용합니다.queries는django에서 실행하는 모든 mysql 문장을 볼 수 있습니다:
from django.db import connection
user = Test.objects.filter(name=' ')[0]
user.phone = '18822221111'
user.save()
user = Test.objects.get(name=' ')
user.phone = '18822221111'
user.save()
Test.objects.filter(name=' ').update(phone='18822221111')
print(connection.queries)
이 때 반환된 값을 볼 수 있습니다.
[{u'time': u'0.000', u'sql': u'SET SQL_AUTO_IS_NULL = 0'}, {u'time': u'0.000', u'sql': u'SET SQL_AUTO_IS_NULL = 0'}, {u'time': u'0.001', u'sql': u"SELECT `test_name`.`id`, `test_name`.`phone`, `test_name`.`name`, `test_name`.`item1`, `test_name`.`item2` FROM `test_name` WHERE `test_name`.`name` = '\u5f20\u5c0f\u817f' LIMIT 1"}, {u'time': u'0.000', u'sql': u"UPDATE `test_name` SET `phone` = '18822221111', `name` = '\u5f20\u5c0f\u817f', `item1` = '222', `item2` = '111' WHERE `test_name`.`id` = 1"}, {u'time': u'0.001', u'sql': u"SELECT `test_name`.`id`, `test_name`.`phone`, `test_name`.`name`, `test_name`.`item1`, `test_name`.`item2` FROM `test_name` WHERE `test_name`.`name` = '\u5f20\u5c0f\u817f'"}, {u'time': u'0.001', u'sql': u"UPDATE `test_name` SET `phone` = '18822221111', `name` = '\u5f20\u5c0f\u817f', `item1` = '222', `item2` = '111' WHERE `test_name`.`id` = 1"}, {u'time': u'0.000', u'sql': u"UPDATE `test_name` SET `phone` = '18822221111' WHERE `test_name`.`name` = '\u5f20\u5c0f\u817f'"}]
정리해 보자. 그중에 5개의 ql문장이 있다.
u"SELECT `test_name`.`id`, `test_name`.`phone`, `test_name`.`name`, `test_name`.`item1`, `test_name`.`item2` FROM `test_name` WHERE `test_name`.`name` = ' ' LIMIT 1"
u"UPDATE `test_name` SET `phone` = '18822221111', `name` = ' ', `item1` = '222', `item2` = '111' WHERE `test_name`.`id` = 1"
u"SELECT `test_name`.`id`, `test_name`.`phone`, `test_name`.`name`, `test_name`.`item1`, `test_name`.`item2` FROM `test_name` WHERE `test_name`.`name` = ' '"
u"UPDATE `test_name` SET `phone` = '18822221111', `name` = ' ', `item1` = '222', `item2` = '111' WHERE `test_name`.`id` = 1"
u"UPDATE `test_name` SET `phone` = '18822221111' WHERE `test_name`.`name` = ' '"
보시다시피 앞의 두 가지 방법은 모두 select 다음에 업데이트된 모든 필드를 포함하고 업데이트되지 않은 필드를 포함합니다. get을 사용할 때 limit 1의 제한이 있고 한 개의 데이터만 얻을 수 있습니다.
사용하다.업데이트 방법은 select 프로세스를 생략하고 효율이 가장 높습니다.
그래서 결론:
django에서
데이터를 업데이트할 필요가 있으면 반드시 사용하십시오.업데이트 방법;
첫 번째 Object 대상을 꺼내려면 반드시 사용하십시오.get 방법filter[0].
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.