美文网首页
Web开发(十四)Django建表、修改表

Web开发(十四)Django建表、修改表

作者: 社会主义顶梁鹿 | 来源:发表于2022-06-24 09:04 被阅读0次

1、models.py文件中创建类

models.py文件中对应的类即为表对象,类名就是表名。

class SysUser(models.Model):

    id = models.AutoField(primary_key=True, null=False, max_length=11, unique=True)  # 自增id,设置主键

    name = models.CharField(null=False, max_length=255, unique=True)  # varchar且不能为空的字段

    login_name = models.CharField(null=False, max_length=255)

    password = models.CharField(null=False, max_length=255)

    date = models.DateTimeField(null=True)

    age = models.IntegerField()  # 整形,默认长度为11

    class Meta:

        db_table = 'sys_user'    # 指明数据库表名

        verbose_name = '用户信息'  # 在admin站点中显示的名称

        verbose_name_plural = verbose_name  # 显示的复数名称

    def __str__(self): 

        """定义每个数据对象的显示信息""" 

        return self.id

2、生成models.py文件的模型变更记录让django知道

python manage.py makemigrations

3、创建表结构

python manage.py migrate

4、字段类型和选项

4.1 数据库表名

模型类如果未指明表名,Django默认以 小写app应用名_小写模型类名 为数据库表名。

可通过db_table 指明数据库表名。

4.2 关于主键

django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。

默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。

4.3 属性命名限制

* 不能是python的保留关键字。

* 不允许使用连续的下划线,这是由django的查询方式决定的。

* 定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:

属性=models.字段类型(选项)

4.4 字段类型

4.5 选项

4.6 外键

在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models中包含了可选常量:

CASCADE 级联,删除主表数据时连通一起删除外键表中数据

PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用的数据

SET_NULL 设置为NULL,仅在该字段null=True允许为null时可用

SET_DEFAULT 设置为默认值,仅在该字段设置了默认值时可用

SET() 设置为特定值或者调用特定方法,如:

from django.conf import settings

from django.contrib.auth import get_user_model

from django.db import models

def get_sentinel_user():

    return get_user_model().objects.get_or_create(username='deleted')[0]

class MyModel(models.Model):

    user = models.ForeignKey(

        settings.AUTH_USER_MODEL,

        on_delete=models.SET(get_sentinel_user),

    )

* DO_NOTHING 不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError异常

相关文章

  • Web开发(十四)Django建表、修改表

    1、models.py文件中创建类 models.py文件中对应的类即为表对象,类名就是表名。 class Sys...

  • django

    django django同步表结构建表修改表数据库操作增删改查 同步表结构 所有操作需要在项目manage.py...

  • Python学习

    python Django(二) Django单表操作 1、创建应用 1.1、添加应用 1.2、修改配置 修改se...

  • MySQL建表语句+添加注释

    1.建表+注释 2.修改注释 3.修改表中字段的长度

  • 05,建表与修改表

    一、建表 1、建表语法: 建表语法:所谓建表,就是一个声明列的过程。Create table 表名(列名1声明 列...

  • Hive建表失败:Execution Error, return

    hive建表失败: 解决办法: 进入mysql修改hive数据库的编码: 之后重建表成功 重新执行建表命令

  • mySql常用语句

    查看有多少库 建库 切换库 查看库中有多少表 建表 查看表结构 插入数据库 查询数据 修改数据 删除数据 修改表结...

  • hbase shell操作(如建表,清空表,增删改查)

    hbase操做 hbase web操作 hbase shell 基本操作: 1)建表 具体命令 2)建表后查看表:...

  • Python学习

    python Django(三) Django单表操作-MySQL 1、创建应用 1.1、添加应用 1.2、修改配...

  • Oracle 复习

    1、建表:create table 2、修改表结构:alter table, alter column 3、插入...

网友评论

      本文标题:Web开发(十四)Django建表、修改表

      本文链接:https://www.haomeiwen.com/subject/msrmvrtx.html