[排错] Django 常见错误的解决

错误一:
1.1 在网页上出现的报错信息

DisallowedHost at /

Invalid HTTP_HOST header: '192.168.102.2:8000'. You may need to add '192.168.102.2' to ALLOWED_HOSTS.

Request Method: 	GET
Request URL: 	http://192.168.102.2:8000/
Django Version: 	1.11.6
Exception Type: 	DisallowedHost
Exception Value: 	

Invalid HTTP_HOST header: '192.168.102.2:8000'. You may need to add '192.168.102.2' to ALLOWED_HOSTS.

Exception Location: 	/root/project/django_env/lib64/python3.6/site-packages/django/http/request.py in get_host, line 113
Python Executable: 	/root/project/django_env/bin/python
Python Version: 	3.6.8
Python Path: 	

['/root/project/mysite',
 '/usr/lib64/python36.zip',
 '/usr/lib64/python3.6',
 '/usr/lib64/python3.6/lib-dynload',
 '/root/project/django_env/lib64/python3.6/site-packages',
 '/root/project/django_env/lib/python3.6/site-packages']

Server time: 	Thu, 27 Feb 2020 06:08:45 +0000

1.2 解决错误的方法

(django_env) [root@python mysite]# vi mysite/settings.py

将以下内容:

......
ALLOWED_HOSTS = []
......

修改为:

......
ALLOWED_HOSTS = ['*']
......

[内容] Django MariaDB&MySQL 数据的增加

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

正文:

内容目录:
内容一:配置 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&MySQL 数据的删除

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

正文:

内容目录:
内容一:配置 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')

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

3.1.2 显示方法一删除数据的 SQL 语句
>>> item.delete()
(1, {'movies.Movies': 1})
>>> 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&MySQL 数据的修改

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

正文:

内容目录:
内容一:配置 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 为例)