[内容] Django 单表数据的增加 (MariaDB 版)

注意:

1) 在增加 Django MariaDB&MySQL 数据之前要先创建一个链接了 MariaDB 数据库或 MySQL 数据库的 Django 项目

2) 对于本文而言,必须要先完成内容一里的内容,再完成内容二里的内容,才能继续完成内容三里的内容

正文:

内容目录:

内容一:配置 Django 环境
1.1 进入 Python 环境
1.2 引入 os 模块和 django 模块
1.3 调用 mysite.settings 的配置
1.4 让刚刚的调用生效
1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

内容二:设置一个显示上一句 SQL 语句的函数

内容三:Django MariaDB&MySQL 数据的增加
3.1 方法一
3.1.1 方法一增加数据的操作
3.1.2 显示方法一增加数据的 SQL 语句
3.2 方法二
3.2.1 方法二增加数据的操作
3.2.2 显示方法二增加数据的 SQL 语句

具体的内容:
内容一:配置 Django 环境
1.1 进入 Python 环境

(django_env) [root@python mysite]# python3

1.2 引入 os 模块和 django 模块

>>> import os,django

1.3 调用 mysite.settings 的配置

>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
'mysite.settings'

1.4 让刚刚的调用生效

>>> django.setup()

1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

>>> from movies.models import *

内容二:设置一个显示上一句 SQL 语句的函数

>>> def showsql():
...     from django.db import connection
...     print(connection.queries[-1]['sql'])

(补充:这里的 [-1] 是指显示上一条操作的 SQL 语句)

内容三:Django MariaDB&MySQL 数据的增加
3.1 方法一
3.1.1 方法一增加数据的操作

>>> newitem = Movies(mid=10001,mname='test1',mdesc='test1',mimg='eternalcenter.com',mlink='eternalcenter.com')
>>> newitem.save()


补充:这里以添加一条
1) mid 字段的值为 10001
2) mname 字段的值为 test1
3) mdesc 字段的值为 test1
4) mimg 字段的值为 eternalcenter.com
5) mlink 字段的值为 eternalcenter.com
的数据为例

3.2.2 显示方法一增加数据的 SQL 语句

>>> showsql()
INSERT INTO `movies` (`mid`, `mname`, `mdesc`, `mimg`, `mlink`) VALUES (10001, 'test1', 'test1', 'eternalcenter.com', 'eternalcenter.com')


补充:这里以添加一条
1) mid 字段的值为 10001
2) mname 字段的值为 test1
3) mdesc 字段的值为 test1
4) mimg 字段的值为 eternalcenter.com
5) mlink 字段的值为 eternalcenter.com
的数据为例

3.2 方法二
3.2.1 方法二增加数据的操作

>>> Movies.objects.create(mid=10002,mname='test2',mdesc='test2',mimg='eternalcenter.com',mlink='eternalcenter.com')
<Movies: Movies object (10002)>


补充:这里以添加一条
1) mid 字段的值为 10002
2) mname 字段的值为 test2
3) mdesc 字段的值为 test2
4) mimg 字段的值为 eternalcenter.com
5) mlink 字段的值为 eternalcenter.com
的数据为例

3.2.2 显示方法二增加数据的 SQL 语句

>>> showsql()
INSERT INTO `movies` (`mid`, `mname`, `mdesc`, `mimg`, `mlink`) VALUES (10002, 'test2', 'test2', 'eternalcenter.com', 'eternalcenter.com')


补充:这里以添加一条
1) mid 字段的值为 10002
2) mname 字段的值为 test2
3) mdesc 字段的值为 test2
4) mimg 字段的值为 eternalcenter.com
5) mlink 字段的值为 eternalcenter.com
的数据为例

[内容] Django 单表数据的删除 (MariaDB 版)

注意:

1) 在删除 Django MariaDB&MySQL 数据之前要先创建一个链接了 MariaDB 数据库或 MySQL 数据库的 Django 项目

2) 对于本文而言,必须要先完成内容一里的内容,再完成内容二里的内容,才能继续完成内容三里的内容

正文:

内容目录:

内容一:配置 Django 环境
1.1 进入 Python 环境
1.2 引入 os 模块和 django 模块
1.3 调用 mysite.settings 的配置
1.4 让刚刚的调用生效
1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

内容二:设置一个显示上一句 SQL 语句的函数

内容三:Django MariaDB&MySQL 数据的删除
3.1 方法一
3.1.1 方法一删除数据的操作
3.1.2 显示方法一删除数据的 SQL 语句
3.2 方法二
3.2.1 方法二删除数据的操作
3.2.2 显示方法二删除数据的 SQL 语句

具体的内容:

内容一:配置 Django 环境
1.1 进入 Python 环境

(django_env) [root@python mysite]# python3

1.2 引入 os 模块和 django 模块

>>> import os,django

1.3 调用 mysite.settings 的配置

>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
'mysite.settings'

1.4 让刚刚的调用生效

>>> django.setup()

1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

>>> from movies.models import *

内容二:设置一个显示上一句 SQL 语句的函数

>>> def showsql():
...     from django.db import connection
...     print(connection.queries[-1]['sql'])

(补充:这里的 [-1] 是指显示上一条操作的 SQL 语句)

内容三:Django MariaDB&MySQL 数据的删除
3.1 方法一
3.1.1 方法一删除数据的操作

>>> item = Movies.objects.filter(mid='5')
>>> item.delete()
(1, {'movies.Movies': 1})

(补充:这里以删除 movies 表里 mid 字段的值为 5 的数据)

3.1.2 显示方法一删除数据的 SQL 语句

>>> showsql()
DELETE FROM `movies` WHERE `movies`.`mid` = 5

(补充:这里以删除 movies 表里 mid 字段的值为 5 的数据)

3.2 方法二
3.2.1 方法二删除数据的操作

>>> Movies.objects.filter(mid='5').delete()
(1, {'movies.Movies': 1})

(补充:这里以删除 movies 表里 mid 字段的值为 5 的数据)

3.2.2 显示方法二删除数据的 SQL 语句

>>> showsql()
DELETE FROM `movies` WHERE `movies`.`mid` = 5

(补充:这里以删除 movies 表里 mid 字段的值为 5 的数据)

[内容] Django 单表数据的修改 (MariaDB 版)

注意:

1) 在修改 Django MariaDB&MySQL 数据之前要先创建一个链接了 MariaDB 数据库或 MySQL 数据库的 Django 项目

2) 对于本文而言,必须要先完成内容一里的内容,再完成内容二里的内容,才能继续完成内容三里的内容

正文:

内容目录:

内容一:配置 Django 环境
1.1 进入 Python 环境
1.2 引入 os 模块和 django 模块
1.3 调用 mysite.settings 的配置
1.4 让刚刚的调用生效
1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

内容二:设置一个显示上一句 SQL 语句的函数

内容三:Django MariaDB&MySQL 数据的修改
3.1 方法一
3.1.1 方法一修改数据的操作
3.1.2 显示方法一修改数据的 SQL 语句
3.2 方法二
3.2.1 方法二修改数据的操作
3.2.2 显示方法二修改数据的 SQL 语句

具体的内容:

内容一:配置 Django 环境
1.1 进入 Python 环境

(django_env) [root@python mysite]# python3

1.2 引入 os 模块和 django 模块

>>> import os,django

1.3 调用 mysite.settings 的配置

>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
'mysite.settings'

1.4 让刚刚的调用生效

>>> django.setup()

1.5 调用 mysite 项目 movies 应用 models 模块里的所有内容

>>> from movies.models import *

内容二:设置一个显示上一句 SQL 语句的函数

>>> def showsql():
...     from django.db import connection
...     print(connection.queries[-1]['sql'])

(补充:这里的 [-1] 是指显示上一条操作的 SQL 语句)

内容三:Django MariaDB&MySQL 数据的修改
3.1 方法一
3.1.1 方法一修改数据的操作

>>> newitem = Movies.objects.last()
>>> newitem.mname='newtest'
>>> newitem.save()


补充:这里以
1) 将 movies 表里最后一条数据的
2) mname 字段的值修改为 newtest
3) mdesc 字段的值修改为 Animation, UHD, Dolby Vision,Dolby Atmos
4) mimg 字段的值修改为 eternalcenter.com/news/image
5) mlink 字段的值修改为 eternalcenter.com/news
为例

3.1.2 显示方法一修改数据的 SQL 语句

>>> showsql()
UPDATE `movies` SET `mname` = 'newtest', `mdesc` = 'Animation, UHD, Dolby Vision,Dolby Atmos', `mimg` = 'eternalcenter.com/news/image', `mlink` = 'eternalcenter.com/news' WHERE `movies`.`mid` = 5


补充:这里以
1) 将 movies 表里最后一条数据的
2) mname 字段的值修改为 newtest
3) mdesc 字段的值修改为 Animation, UHD, Dolby Vision,Dolby Atmos
4) mimg 字段的值修改为 eternalcenter.com/news/image
5) mlink 字段的值修改为 eternalcenter.com/news
为例

3.2 方法二
3.2.1 方法二修改数据的操作

>>> Movies.objects.filter(mid=5).update(mname='newtest2')
1

(补充:这里以将 movies 表里 mid 字段等于 5 的 mname 字段修改为 newtest2 为例)

3.2.2 显示方法二修改数据的 SQL 语句

>>> showsql()
UPDATE `movies` SET `mname` = 'newtest2' WHERE `movies`.`mid` = 5

(补充:这里以将 movies 表里 mid 字段等于 5 的 mname 字段修改为 newtest2 为例)

[内容] Django 模型层 Models Layer 常用数据库字段

内容目录:

内容一:Django Models 常用的文本字段
1.1 CharField() 字符串字段
1.1.1 CharField() 字符串字段的格式
1.1.2 CharField() 字符串字段的必选项
1.1.3 CharField() 字符串字段的可选项
1.1.4 CharField() 字符串字段的使用案例
1.2 TextField() 文本字段
1.2.1 TextField() 文本字段的格式
1.2.2 TextField() 文本字段的必选项
1.2.3 TextField() 文本字段的可选项
1.2.4 TextField() 文本字段的使用案例

内容二:Django Models 常用的数值字段
2.1 IntegerField() 整数字段
2.1.1 IntegerField() 整数字段的格式
2.1.2 IntegerField() 整数字段的可选项
2.1.3 IntegerField() 整数字段的使用案例
2.2 PositiveIntegerFiled() 正整数字段
2.2.1 PositiveIntegerFiled() 正整数字段的格式
2.2.2 PositiveIntegerFiled() 正整数字段的可选项
2.2.3 PositiveIntegerFiled() 正整数字段的使用案例
2.3 DecimalField() 小数字段
2.3.1 DecimalField() 小数字段的格式
2.3.2 DecimalField() 小数字段的必选项
2.2.3 DecimalField() 小数字段的使用案例

内容三:Django Models 常用的日期字段
3.1 DateField() 日期字段
3.1.1 DateField() 日期字段的格式
3.1.2 DateField() 日期字段的可选项
3.1.3 DateField() 日期字段的使用案例
3.2 DateTimeField() 日期时间字段
3.2.1 DateTimeField() 日期时间字段的格式
3.2.2 DateTimeField() 日期时间字段的可选项
3.2.3 DateTimeField() 日期时间字段的使用案例

内容四:Django Models 常用的标准格式字段
4.1 GenericIPAddressField() IPv4 地址字段
4.1.1 GenericIPAddressField() IPv4 地址字段的格式
4.1.2 GenericIPAddressField() IPv4 地址字段的使用案例
4.2 EmailField() 邮件地址字段
4.2.1 EmailField() 邮件地址字段的格式
4.2.2 EmailField() 邮件地址字段的可选项
4.2.3 EmailField() 邮件地址字段的使用案例
4.3 UUIDField() UUID 字段
4.3.1 UUIDField() UUID 字段的格式
4.3.2 UUIDField() UUID 字段的案例

内容五:Django Models 常用的逻辑字段
5.1 AutoField() 自动递增字段
5.1.1 AutoField() 自动递增字段的格式
5.1.2 AutoField() 自动递增的可选项
5.1.3 AutoField() 自动递增的使用案例
5.2 BooleanField() 布尔(boolean)值字段
5.2.1 BooleanField() 布尔(boolean)值字段的格式
5.2.2 BooleanField() 布尔(boolean)值字段的可选项
5.2.3 BooleanField() 布尔(boolean)值字段的案例

内容六:Django Models 常用的外部资源字段
6.1 FileField() 文件字段
6.1.1 FileField() 文件字段的格式
6.1.2 FileField() 文件字段的必选项
6.1.3 FileField() 文件字段的可选项
6.1.4 FileField() 文件字段的使用案例
6.2 URLField() URL 字段
6.2.1 URLField() URL 字段的格式
6.2.2 URLField() URL 字段的可选项
6.2.3 URLField() URL 字段的使用案例
6.3 ImageField() 图片字段
6.3.1 ImageField() 图片字段的格式
6.3.2 ImageField() 图片字段的可选项
6.3.3 ImageField() 图片字段的使用案例

具体的内容:

内容一:Django Models 常用的文本字段
1.1 CharField() 字符串字段
1.1.1 CharField() 字符串字段的格式

<field> = models.CharField(max_length = <string length>, <option>)

1.1.2 CharField() 字符串字段的必选项

max_length = <text length>

或者:

max_length = None

1.1.3 CharField() 字符串字段的可选项

1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值


4) unique = True

值唯一

1.1.4 CharField() 字符串字段的使用案例

item = models.CharField(max_length = 20, unique = True)

(补充:这里以设置名为 item,且是唯一的 CharField() 字符串字段为例)

1.2 TextField() 文本字段
1.2.1 TextField() 文本字段的格式

<field> = models.TextField(max_length = <string length>, <option>)

1.2.2 TextField() 文本字段的必选项

max_length = <text length>

或者:

max_length = None

1.2.3 TextField() 文本字段的可选项

1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值


4) unique = True

值唯一

1.2.4 TextField() 文本字段的使用案例

item = models.TextField(max_length = 20, unique = True)

(补充:这里以设置名为 item,且是唯一的 TextField() 文本字段为例)

内容二:Django Models 常用的数值字段
2.1 IntegerField() 整数字段
2.1.1 IntegerField() 整数字段的格式

<field> = models.IntegerField(<option>)

2.1.2 IntegerField() 整数字段的可选项

1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值

2.1.3 IntegerField() 整数字段的使用案例

item = models.IntegerField()

(补充:这里以设置名为 item 的整数字段为例)

2.2 PositiveIntegerFiled() 正整数字段
2.2.1 PositiveIntegerFiled() 正整数字段的格式

<field> = models.IntegerField(<option>)

2.2.2 PositiveIntegerFiled() 正整数字段的可选项

1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值

2.2.3 PositiveIntegerFiled() 正整数字段的使用案例

item = models.TextField()

(补充:这里以设置名为 item 的正整数字段为例)

2.3 DecimalField() 小数字段
2.3.1 DecimalField() 小数字段的格式

<field> = models.DecimalField(max_digits = <total number of decimal places>, decimal_places = <how many places after the decimal point>)

2.3.2 DecimalField() 小数字段的必选项

1) max_digits = <total number of decimal places>

小数字段总共位数

2) decimal_places = <how many places after the decimal point>

小数字段小数点后保留几位

2.2.3 DecimalField() 小数字段的使用案例

item = models.DecimalField(max_digits = 5, decimal_places = 2)

(补充:这里以设置名为 item,长度为 5,小数点后保留 2 位的 DecimalField() 小数字段为例)

内容三:Django Models 常用的日期字段
3.1 DateField() 日期字段
3.1.1 DateField() 日期字段的格式

<field> = models.DateField(<option>)

3.1.2 DateField() 日期字段的可选项

auto_now = True

自动更新创建时间

3.1.3 DateField() 日期字段的使用案例

item = models.DateField(auto_now_add=True)

(补充:这里以设置名为 item,可自动更新的 DateField() 日期字段为例)

3.2 DateTimeField() 日期时间字段
3.2.1 DateTimeField() 日期时间字段的格式

<field> = models.DateTimeField(<option>)

3.2.2 DateTimeField() 日期时间字段的可选项

auto_now = True

自动更新创建时间

3.2.3 DateTimeField() 日期时间字段的使用案例

item = models.DateTimeField(auto_now_add=True)

(补充:这里以设置名为 item,可自动更新的 DateTimeField() 日期时间字段为例)

内容四:Django Models 常用的标准格式字段
4.1 GenericIPAddressField() IPv4 地址字段
4.1.1 GenericIPAddressField() IPv4 地址字段的格式

<field> = models.IPAddressField()


补充:
在老的 Django 版本里,此字段的真实名称是:

models.IPAddressField()
)

4.1.2 GenericIPAddressField() IPv4 地址字段的使用案例

item = models.IPAddressField()

(补充:这里以设置名为 item 的 IPAddressField() IPv4 地址字段为例)


补充:
在老的 Django 版本里,此字段的真实名称是:

models.IPAddressField()
)

4.2 EmailField() 邮件地址字段
4.2.1 EmailField() 邮件地址字段的格式

<field> = models.EmailField(<option>)

4.2.2 EmailField() 邮件地址字段的可选项

unique = True

值唯一

4.2.3 EmailField() 邮件地址字段的使用案例

item = models.EmailField(unique = True)

(补充:这里以设置名为 item 的,且是唯一的 EmailField() 邮件地址字段为例)

4.3 UUIDField() UUID 字段
4.3.1 UUIDField() UUID 字段的格式

<field> = models.UUIDField()

4.3.2 UUIDField() UUID 字段的案例

item = models.UUIDField()

(补充:这里以设置名为 item 的 UUIDField() UUID 字段为例)

内容五:Django Models 常用的逻辑字段
5.1 AutoField() 自动递增字段
5.1.1 AutoField() 自动递增字段的格式

<field> = models.AutoField(<option>)

5.1.2 AutoField() 自动递增的可选项

primary_key = True

设置为主键

5.1.3 AutoField() 自动递增的使用案例

item = models.AutoField(primary_key = True)

(补充:这里以设置名为 item 的,且设置为主键的 AutoField() 自动递增字段为例)

5.2 BooleanField() 布尔(boolean)值字段
5.2.1 BooleanField() 布尔(boolean)值字段的格式

<field> = models.BooleanField(<option>)

5.2.2 BooleanField() 布尔(boolean)值字段的可选项

default=<default value>

(补充:设置布尔(boolean)值的默认值,默认值可选项有且只有:True 和 False)

5.2.3 BooleanField() 布尔(boolean)值字段的案例

item = models.BooleanField(default=False)

(补充:这里以设置名为 item 的,且默认值为 False 的布尔(boolean)值字段为例)

内容六:Django Models 常用的外部资源字段
6.1 FileField() 文件字段
6.1.1 FileField() 文件字段的格式

<field> = models.FileField(upload_to = "<directory/file>", <option>)

6.1.2 FileField() 文件字段的必选项

upload_to='<directory/file>'

6.1.3 FileField() 文件字段的可选项

max_length = '<length size>'

6.1.4 FileField() 文件字段的使用案例

item = models.FileField(upload_to ="./file", max_length = '4096')

(补充:这里以设置名为 item 的,读取本地的 ./file 文件,大小为 4096 的 FileField() 文件字段为例)

6.2 URLField() URL 字段
6.2.1 URLField() URL 字段的格式

<field> = models.URLField(max_length=<URL size>, <option>)

6.2.2 URLField() URL 字段的可选项

1) verify_exists = True

默认值为 True,如果 URL 不存在,则会返回 404


2) max_length=<URL size>

默认值为 200

6.2.3 URLField() URL 字段的使用案例

item = models.URLField(max_length= 200)

(补充:这里以设置名为 items 的,大小的为 200 的 URLField() URL 字段为例)

6.3 ImageField() 图片字段
6.3.1 ImageField() 图片字段的格式

item = models.ImageField(upload_to = "<directory/file>", <option>)

6.3.2 ImageField() 图片字段的可选项

1) height_field = <height size>
2) width_field = <width size>
3) max_length = <image size>

6.3.3 ImageField() 图片字段的使用案例

item = models.ImageField(upload_to = "./file")

(补充:这里以设置名为 item 的,读取本地的 ./file 文件的 ImageField() 图片字段为例)

参考文献:

https://docs.djangoproject.com/en/3.2/ref/models/fields/