Django模型,了解一下

默认的数据库


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', #数据库引擎
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #数据库名称
    }
}



Model

from django.db import  models


class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    def __str__(self):
        return self.name   #返回名称 ,相当于tostring 吧

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

每个模型使用一个Python类表示
是django.db.models.Model的子类
父类Model包含与数据库交互所需的全部机制
模型以简洁明了的语法定义字段

一般,一个模型对应一个数据库表

安装模型

  • 把books应用添加到设置文件中安装的应用列表中
  • 在settings.py文件 INSTALLED_APPS设置
INSTALLED_APPS={
    book
    }
#python manage.py check

check 命令运行Django系统检查框架

该模型会自动创建相对应的表

  • 自动生成的表名结合应用的名称和模型名的小写形式,这个行为可以覆盖
  • 会为各个表添加主键 ,id字段,外键 _id
  • 外键关系 REFERENTCES 语句指明

基本的数据访问

from books.models import Publisher # 导入模型类
p1 = Publisher(name='')
p1.save() #相当于insert

自增主键id

.objects.all
相当于查询 select

.objects.filter(name=’xiaohua’)
条件查询


  1. 配置数据库
  2. 建model
  3. 安装
  4. 导入使用

模型就是对数据的操作进行了一次封装
使对数据的操作更方便,更透明

猜你喜欢

转载自blog.csdn.net/java_sparrow/article/details/80659344
今日推荐