什么';Django中的“save()”是什么意思?

什么';Django中的“save()”是什么意思?,django,Django,我正在学习Django,拥有以下代码: def vote(request, question_id): question = get_object_or_404(Question, pk=question_id) try: selected_choice = question.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist): #

我正在学习Django,拥有以下代码:

def vote(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    try:
        selected_choice = question.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        #Redisplay the question voting form
        return render(request, 'polls/detail.html', {
            'question':question,
            'error_message':"You did'nt select a choice.",
        })
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))
我对所选的
选项感到困惑。save()
,举个简单的例子:

counter = 0
for counter in range(9):
    counter += 1
    print(counter)
在此过程中没有
save
操作

在Django中,save()用于什么?

在Django中save()用于什么?

向数据库发送/同步/保存对象。
保存对象时,会触发以下步骤:

  • 预保存信号(任何函数监听该信号执行的时间)
  • 预处理数据(调用具有
    pre\u save
    方法的每个字段)

    i、 e:例如,日期/时间字段覆盖pre_save()以实现立即自动添加和立即自动添加

  • 为数据库准备数据
  • 将数据插入数据库
  • 发出保存后信号(任何函数监听该信号执行的时间)

  • 资料来源:

    我想升一级。其他人所说的一切都是真实的,但我认为你可能会迷失在Django提出的抽象概念中

    get对象_或_404是以下psuedo代码的抽象:

    try:
        question = Question.objects.get(pk=question_id) #grabing this row from the questions table in the db
    except:
         return 404 url
    
    然后,您的示例迭代所选的_选项并增加该值,然后将其保存到数据库中。简单计数器示例只有一个不会更新数据库的print语句


    冒着越界的风险,我建议从django核心教程开始,然后尝试更复杂的内容。我相信有一个更多的基础(我知道是一项投资),基金会在获得抽象化方面会分红。

    < p>关键字参数仅仅是您在模型上定义的字段的名称。请注意,实例化模型不会影响数据库;为此,需要保存()。 因此,基本上,保存方法是将数据(更新的数据)同步到数据库,如果不保存,则无法在数据库中看到更新的数据。

    save()将数据从内存同步到数据库