当前位置: 首页 > 网络应用技术

什么是Django模型是指(2023年最新分享)

时间:2023-03-08 21:25:41 网络应用技术

  简介:许多朋友问有关Django模型的问题。本文的首席执行官注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!

  Django模型通常使用Django的GET和过滤器方法。重要的是要找出两者之间的区别。

  为了说明两者之间的差异,定义了2个模型

  班级学生(Models.Model):

  name = models.chafield('name',max_length = 20,默认='')

  age = models.charfield('age',max_length = 20,默认='')

  课程(Models.Model):

  学生=型号。

  1.让我们先谈谈django的获取方法:

  1django的GET方法是从数据库中获得匹配结果并返回对象。如果记录不存在,它将报告错误。

  例如,如果我的数据库中有记录,则记录的值为“ python”,我使用student = statent.objects.get。

  它返回记录对象。您可以通过学生查看。__dict__。它返回字典表格。

  而且,如果我使用GET方法检查数据库中不存在的记录,则该程序将报告错误。

  例如:student = student.objects.gets.get(name ='pharaoh'),您可以自己运行。

  2如果您使用django获取相关表的数据,并且如果密钥表的数据中有2个以上的数据,将会报告错误。

  例如,我的学生表中有一个记录:

  ID名称年龄

  1 Python 24

  书籍表:

  id student_id

  1 1

  21

  我用

  student = student.objects.get(name ='python')

  book = book.objects.get(学生)

  它还报告了一个错误,因为书籍表有2个记录和学生表。

  2.让我们谈谈Django过滤器:

  1Django滤波器方法是匹配数据库的结果,并返回对象列表。如果记录不存在,它将返回[]。

  例如,我的数据库中有一个记录。如果记录的价值为Python,我使用student = student.objects.filter(name ='python'))))))))

  返回的学生是对象的列表。可以看出,学生[0]的结果和上述方法返回的雕像是相同的。

  官方文件中的说明:

  Onetoonefield

  一对一的关系。从概念上讲,这类似于具有唯一= true的外国人,但是“重新的反向将直接撤回一个对象。

  我们可以认为,当外国钥匙的唯一参数是真实的,OneToOneField和Foreike Key是相似的。不同之处在于,在获取数据时,OneToOneField返回单独的对象,而外国键则返回QuerySet。

  模型

  来自django.db导入模型

  类引擎(型号。模型):

  name = models.charfield(max_length = 25)

  def __unicode __(self):

  返回self.name

  班级汽车(Models.Model):

  name = models.charfield(max_length = 25)

  引擎=型号。

  def __unicode __(self):

  返回self.name

  Class Engine2(Models.Model):

  name = models.charfield(max_length = 25)

  def __unicode __(self):

  返回self.name

  CAR2类(Models.Model):

  name = models.charfield(max_length = 25)

  Engine = Models.Foreignkey(Engine2,unique = true)

  def __unicode __(self):

  返回self.name

  当我们在python manage.py shell中执行时

  Onetoonefield:

  从Testapp.Models进口汽车,发动机

  c = car.objects.get(name ='audi')

  E = Engine.Objects.get(name ='柴油')

  e.car

  汽车:奥迪

  具有唯一= true的外国钥匙:

  来自Testapp.Models Import Car2,Engine2

  c2 = car2.Objects.get(name ='Mazda')

  e2 = Engine2.Objects.get(name ='Wankel')

  e2.car2_set.all()

  [CAR2:马自达]

  参考:

  这些东西有一种方法。我已经使用了。

  在Django提供的管理类中,有所有这些用法。您可以找到其源代码并自己阅读。

  DataField确实需要一个对象将其写入数据库。

  Foriegnkey确实需要建立的课程。例如

  此外,它在Djangoproject的官方网站上提供了丰富的帮助。可以搜索大多数答案。

  知识的要点:

  桌子关系的实现

  一个-to -Multi -ptable关系

  MySQL中的一对主要是通过外部键实现的,在Django模型中,它是通过ExourneKeyfield类型实现的。

  一个 - 一张桌子关系

  MySQL中的一个-to -ONE通过外部密钥和唯一键实现,并通过Django模型中的OneToOneField类型实现。

  多站

  MySQL中的大多数对主要是通过中间表和唯一键实现的,并通过Django模型中的ManyTomanyfield类型实现。中间手表模型将自动创建。

  例子:

  关系表中数据的操作

  在Internet上看到使用Django的模型和MAKEMIGRATION,迁移命令创建新表并使用它。但是我的数据已经存在,并且已经存储了,并且已经存储了数据,并且无法创建新表格。Django的指示和与模型名称的映射关系可以使Django使用现有表。

  如果模型在Django中存在如下:

  [python]查看普通副本

  来自django.db导入模型

  #在这里创建您的模型。

  Sciencenews(Models.Model):

  id = models.charfield(max_length = 36,primary_key = true)

  first_module = model.charfield(max_length = 30,默认值=“ news”)

  second_module = model.charfield(max_length = 30,默认值=“最新新闻”)

  title = models.charfield(max_length = 300)

  作者= models.charfield(max_length = 60,null = true)

  publish_date = models.charfield(max_length = 35,null = true)

  content = model.textfield(null = true)

  crawl_date = model.charfield(max_length = 35,null = true)

  from_url = models.charfield(max_length = 350,null = true)

  执行数据迁移命令:

  [python]查看普通副本

  python manage.py makemign

  python manage.py迁移

  名为show_sciencenews的数据表将在数据库中生成。显示为应用程序名称。我的应用程序名称在此处显示。

  我的存储和攀登数据数据的表名是Science_News,我想使用它来使用它而不是创建新表。其名称的名称已更改为带有表格的模型的名称,在这里我更改为show_sciencenews。然后使用上述数据迁移命令。目前,可以提示数据表数据表已经存在错误。不合理的模型已使用数据表映射。接下来,您只需要正常使用模型和数据表即可。

  结论:以上是首席CTO注释为所有人编写的Django模型的全部内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关Django模型的相关内容的更多信息是指在此站点上找到它。