zoukankan      html  css  js  c++  java
  • ORM 模型层

    一个模型就是一个单独的,确定的数据的信息源,包含了数据的字段和操作方法。通常,每个模型映射为一张数据库中的表

    基本原则:

    • 每个模型在Django中的存在形式为一个python类
    • 每个模型都是django.db.modeks.Model的子类
    • 模型的每个字段(属性)代表数据表的某一列
    • Django将自动为你生成数据库访问API.

    简单示例

    下面的模型定义了一个“人”,它具有first_namelast_name字段:

    from django.db import models
    
    class Person(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=30)

    这里每个字段都是一个类属性,每个类属性表示数据表中的一个列。

    上面代码,如下满原生SQL语句

    CREATE TABLE app01_person (
        "id" serial NOT NULL PRIMARY KEY,
        "first_name" varchar(30) NOT NULL,
        "last_name" varchar(30) NOT NULL
    );

    注意:

    表名app01_person 由django自动生成,默认格式为“项目名称+下划线+小写类名”。这个类名规则也可以重写

    Django会默认自动创建自增主键id,(也可以自己指定主键)。

    通常,我们都默认把模型编写都写在app下的models.py

    创建了模型之后,在使用它之前,你需要先在settings文件中的INSTALLED_APPS 处,注册models.py文件所在的myapp。看清楚了,是注册app,不是模型,也不是models.py

    当我们对模型进行增、删、改时,需执行python manage.py makemigrations   和 python manage.py migratee

    模型字段fields

    字段是模型中最重要的内容之一,也是唯一必须的部分。

    字段在python中表现为一个类属性,体现为数据表中一个列。不要使用clean 、save 、delete 等django内置的模型API名字,防止命名冲突。

     注意字段的写法

    from django.db import models
    
    # 音乐家
    class Musician(models.Model):
        first_name = models.CharField(max_length=50)
        last_name = models.CharField(max_length=50)
        instrument = models.CharField(max_length=100)
    
    class Album(models.Model):
        artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
        name = models.CharField(max_length=100)
        release_date = models.DateField()
        num_stars = models.IntegerField()

    字段名命名约束

    Django不允许下面两种字段名:

  • 相关阅读:
    delphi利用文件内存共享的简单小说阅读器
    Delphi中共享内存学习
    JavaWeb初学者配置数据库连接报错(此处是MSSQL)
    Delphi的Json学习之一
    Delphi记录类型指针的使用
    汇编——段寄存器
    SQL 标量函数-----日期函数 day() 、month()、year() 转载
    项目一总结 滚动监听
    一阶段项目总结 导航栏 滚动监听固定
    简单的 js手写轮播图
  • 原文地址:https://www.cnblogs.com/jassin-du/p/8343527.html
Copyright © 2011-2022 走看看