如何使用django将数据更新到sql数据库的表中

如何使用django将数据更新到sql数据库的表中,sql,django,python-2.7,Sql,Django,Python 2.7,我在django教程中学习了数据库概念。我对在sql数据库服务器中从表中获取数据有一些疑问。在django的书中,他们解释了这样的东西来过滤数据,如下所示 Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same') 这里的条目是在models.py文件中定义的类名,如下所示 models.py class Entry(models.Model): blog = models.For

我在django教程中学习了数据库概念。我对在sql数据库服务器中从表中获取数据有一些疑问。在django的书中,他们解释了这样的东西来过滤数据,如下所示

Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')
这里的条目是在models.py文件中定义的类名,如下所示

models.py

class Entry(models.Model):
   blog = models.ForeignKey(Blog)
   headline = models.CharField(max_length=255)
   body_text = models.TextField()
   pub_date = models.DateField()
   mod_date = models.DateField()
   authors = models.ManyToManyField(Author)
   n_comments = models.IntegerField()
   n_pingbacks = models.IntegerField()
   rating = models.IntegerField()

   def __str__(self):              # __unicode__ on Python 2
       return self.headline
在上述方法中,没有提及要修改的表。然后在下面的查询中修改哪个表

  Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')
如果我问错了什么,请原谅我。有谁能帮我消除疑虑。

来自:

为了节省时间,Django自动从模型类和包含它的应用程序的名称派生数据库表的名称。模型的数据库表名称是通过将模型的“应用程序标签”(即您在manage.py startapp中使用的名称)连接到模型的类名来构造的,其间带有下划线

例如,如果您有一个应用程序书店(由manage.py startapp bookstore创建),则定义为类Book的模型将有一个名为bookstore\u Book的数据库表

要覆盖数据库表名,请在Meta类中使用db_table参数

如果您使用的API如所列,则不需要知道表名:

Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')

Django将知道要更新哪个表,因为您引用了模型。

表的名称由模型参数“table\u name”确定。如果未指定,django会自动从模型类和包含它的应用程序的名称派生数据库表的名称:


如果您的问题是关于在django中执行SQL查询,这将很有帮助:

考虑一个带有属性/字段(blog、headline、body_text等)的
条目
对象,而不是一个表;然后,您将更新其发布日期为2007年的所有条目的标题,谢谢您的回复。现在我明白了。然后是表格的(博客、标题、正文、发布日期等)列名,谢谢。如果需要从多个表中获取数据,请再多提一个疑问,这意味着我们必须编写存储过程,并且必须正确调用其中的过程??