django-models开始使用django-models


备注

本节概述了django-models是什么,以及开发人员为什么要使用它。

它还应该提到django模型中的任何大型主题,并链接到相关主题。由于django-models的文档是新的,您可能需要创建这些相关主题的初始版本。

Django模型示例

一个简单的例子是图书馆管理应用程序;你会有2个模特,例如studentbook

models.py:

from django.db import models

class student(models.Model):
    roll_no = models.IntegerField(primary_key=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
 

这里我们给了roll_no学生模型的主键,但是即使我们没有给任何属性一个主键,Django会自动分配一个名为id 的属性,该属性会自动分配并在创建新行时递增。

现在,您只需将此模型导入views 或项目中,并通过简单地创建该模型的对象与其进行交互。

Django有许多内置的Field ,甚至你也可以创建自己的。

Django还支持模型之间的关系, many-to-manyone-to-onemany-to-one

Django详细的模型文档

安装或设置

通常,每个模型都映射到一个数据库表。我们在应用程序的model.py文件中编写字段类型,限制,大小等。这将在数​​据库中创建必要的表和字段。

'''   models.py    '''
from django.db import models
    
    class table_name(models.Model):
        field_name= models.field_type(conditions)
 

接下来,我们需要在settinggs.py 通知Django关于将使用此模型的应用程序。

    '''  settinggs.py  ''''
    
    INSTALLED_APPS = [
    #...
    'app_name',
    #...    ]
 

我们差不多完成了。接下来,我们需要迁移此应用程序,以便创建数据库表。在终端类型中以下内容:

python manage.py migrate
 

migrate 将通过检查setting.py 的app_installed来创建必要的数据库

通过makemigrations ,Django将知道对模型所做的更改。

python manage.py makemigrations
 

而已。您的数据库已创建,您可以在终端中查看架构

python manage.py sqlmigrate app_name 0001
 

什么是Django型号?

Django model 通常引用数据库中的表,该模型的属性成为该表的列。在更多真实示例中,您将为应用程序中的任何实体创建模型,并使用django fields 存储其属性,这些django fields 会自动处理您将使用的数据库的数据类型转换。

Django的一个很棒的功能是它的ORM ,你不必编写任何数据库查询,甚至建议不要在使用Django时写一个。 ORM将您的Django models 以及您使用它执行的所有操作转换为相应的数据库查询。这意味着您必须执行的所有操作,现在使用从该模型创建的python对象,以及所有底层数据库内容都将由Django的ORM 。您可以使用它进行一系列调整和自定义。

Django的ORM 支持所有主要数据库,如PostgresMySQLsqlite3 和其他提供适当驱动程序的企业数据库。这也意味着您不必关心您正在使用的底层数据库,或者即使您想从一个数据库转移到另一个数据库,也可以在不更改应用程序逻辑的单行的情况下执行此操作,只需更改数据库字符串即可来自settings.py ,转储旧数据,你应该好好去。