• 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不允许下面两种字段名:

  • 相关阅读:
    使用jq.lazyload.js,解决设置loading图片的问题
    Write your first jQuery plugin
    如何在Less中使用使用calc
    web页面在ios下不支持fixed可用absolute替代的方案
    JavaScript内存优化
    js监听文本框内容变化
    动态绑定事件on
    CSS秘密花园:多边框
    2020—2021—1学期20202405《网络空间安全导论》第一周学习总结
    2020—2021—1学期20202405《网络空间安全导论》第五周学习总结
  • 原文地址:https://www.cnblogs.com/jassin-du/p/8343527.html
Copyright © 2020-2023  润新知