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'
标签:选项,教程,一站式,models,模型,Django,字段,数据库
From: https://blog.csdn.net/lyzhangxiaowei/article/details/144624495