Django框架一站式保姆级教程(四)

Models–模型(上)

一.模型

1.1 概述

模型(Model)是Django 为了构建和操纵 Web 应用的数据而提供的抽象层
模型是数据交互的接口,用于表示和操作数据表及记录
每个模型都是一个Python类,这些类继承django.db.models.Model

1.2 MySQL 数据库 API 驱动程序

第一步:安装Python开发库和头文件及MySQL客户端开发库和头文件

sudo apt-get install python3-dev default-libmysqlclient-dev

第二步:安装mysqlclient

pip3 install mysqlclient

Django支持MySQL8.0及以上版本

安装时如果有什么问题,可以参考我的文章<MACBOOK(M1芯片)安装mysqlclient报错error: subprocess-exited-with-error的解决办法>

1.3 模型的操作步骤

第一步:通过MySQL或MariaDB客户端创建数据库,如

mysql>CREATE DATABASE IF NOT EXISTS knowbase;

第二步:通过Django项目内的settings.py进行数据库配置
第三步:通过Django项目应用目录下的models.py文件内创建模型
第四步:通过python3 manage.py进行数据迁移

1.4 配置数据库

在setttings.py中的DATABASES进行配置,代码如下:

DATABASES = {
   
   
    'default':{
   
   
        # 要使用的数据库后端
        'ENGINE':'django.db.backends.mysql',
        'HOST':'数据库服务器的IP地址',
        'PORT':'端口号',
        'USER','数据库管理员用户名',
        'PASSWORD':'数据库管理员密码',
        'NAME':'数据库名称',    
    }
}

参照登录MySQL服务器的命令

$ mysql -h主机名称 -P端口号 -u用户名 -p密码 -D数据库名称
1.5 创建模型

Django中创建模型的语法结构是:

from django.db import models

class ModelName(models.Model):
    fieldname1 = models.FieldType([options[,...]])
    fieldname2 = models.FieldType([options[,...]])
    # more fields...

    class Meta:
        MetaOption = value

其中:
● ModelName指要创建的模型类的名称(即数据表名称)
● fieldname指定义的字段名称
● FieldType用于定义字段的数据类型
● options用于定义字段的选项,如是否允许为空、字段默认值、数据类型的长度限制、是否为主键等
● class Meta是模型的内部类,用于定义"所有不是字段的东西",如数据表名称,排序字段及排序方式等

二.字段

2.1 字段命名限制

● 字段的名称不能是 Python 保留字,这会导致 Python 语法错误
● 字段名称不能包含连续的多个下划线,原因在于 Django 查询语法的工作方式
● 字段名称不能以下划线结尾,原因在于 Django 查询语法的工作方式
● SQL保留字,例如 JOIN, WHERE 或 SELECT, 是可以被用作模型字段名称的(但不建议)

2.2 字段类型

Django的字段类型与MySQL数据库的对应关系如下:
![在这里在这里插入图片描述
在这里插入图片描述

2.3 字段选项

在Django中,模型字段可以使用各种选项来控制其行为和属性。以下是一些常用的模型字段选项:
● Field.primary_key
该选项用于表示字段是否为主键约束,如:

id = models.PositiveSmallIntegerField(primary_key=True)

● Field.unique
该选项用于表示字段是否为唯一约束,如:

username = models.CharField(max_length=50,unique=True)

● max_length
该选项用于指定字段类型字段允许的最大字符数,如:

email = models.EmailField(max_length=50)

● Field.default
该选项用于指定字段的默认值,如:

salary = models.DecimalField(max_digits=8,decimal_places=2,default=0.00)

● Field.null
该选项用于指定字段是否为空,默认为False,如:

telephone = models.CharField(max_length=12,null=True)

● Field.db_column
默认情况下Django 将使用变量名称作为字段名称,该选项用于指定字段名称,如:

faceurl = models.CharField(max_length=50,db_column='avatar')

• Field.choices
该选项用于指定字段的枚举值,其类型为元组类型,如:

YEAR_IN_SCHOOL_CHOICES = [
    ('FR', 'Freshman'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值