Django开发中问题和报错集合

记录django项目开发过程中的遇到的问题,导致原因和已经奏效的解决方法

常见报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbc in position 852: invalid start byte

这个问题在一些电脑上做django开发时经常出现

要么是py文件运行是就报这个类似的无法解码的问题,要么就是运行服务器后台添加数据保存时报这个错误

现总结了以下一些可能的原因和解决方法:

可能的原因:

  • 1.GBK编码的文件(不一定是py文件)中输入了的汉字与django运行时的解码方式utf-8不一致;
  • 2.在文件开头加上# -*- coding:utf-8 -*-,这个方法只对单个文件有效,而且加过一次后再去掉也仍然奏效
  • 3.电脑命名出现了汉字(在设置中修改成英文即可,这是能搜索到的普遍的解答)

解决方法:

  • 要么删除汉字,要么修改转换一下编码方式将原文件覆盖→用pycharm右下角的编码转换功能修改
上述编码错误还可能导致搜索功能的作用失效

使用python的全文检索框架帮助搜词时无法匹配到目标对象(你传入的page对象到模板中始终为空),这可能是因为分词txt文件出现了上述的编码冲突:

  • 比如:templates/indexes/app1目录下的Model_text.txt的出现了汉字(注释也算)与django用的utf-8冲突在这里插入图片描述

  • 解决方法就是前面所说的修改编码方式为utf-8并重新加载文件

终端执行命令(如迁移python manage.py makemigrations)时报错:RuntimeError: Model class apps.xxx.xxx.XXXdoesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS.

可能的原因:

  • 检查models里面的外键关联对象名称是否有错,关联的对象名称格式应该是【app名.类名】(中间没有models.py文件名)
    在这里插入图片描述

解决方法:

  • 如上原因所示,关联的对象名称格式应该是【app名.类名】
执行迁移命令python manage.py makemigrations时报错
1.django.db.utils.OperationalError: (2003, “Can’t connect to MySQL server on ‘1xx.xx.xx.xxx’ ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)”)

可能的原因:

  • 检查服务器上MySQL服务程序是否启动,(用PS指令检查程序)启动(linux):service mysql start
  • 检查MySQL是否有授予访问权利给当前发起连接的主机IP,查看授权情况:show grants for user@1xx.xx.xx.xx(user是你在django配置中设置的数据库登录账号),不想查看,可直接执行授权操作

解决方法:

  • 授权:GRANT ALL PRIVILEGES ON `test`.* TO 'user'@'1xx.1xx.xx.xx' IDENTIFIED BY 'password' WITH GRANT OPTION;其中test是名为test数据库(可理解为子库?),不输入’test’则是授权所有库,后面的user、ip和password要根据实际情况输入,示例:在这里插入图片描述在这里插入图片描述
    如果出现报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements在这里插入图片描述
    请往下查看解决方法:

数据库指定IP主机授权时报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因:

  • 原因是密码太短,密码安全策略要求过高

解决方法:

  • 查看当前的密码安全策略show variables like "%validate%";在这里插入图片描述

  • 修改密码安全策略,修改密码长度为4位:set global validate_password_length=4;

  • 修改安全等级为low(0):set global validate_password_policy=0;在这里插入图片描述

  • 再次查看密码安全策略:show variables like "%validate%";
    在这里插入图片描述

  • 再次对指定的IP主机授权:GRANT ALL PRIVILEGES ON `test`.* TO 'user'@'1xx.1xx.xx.xx' IDENTIFIED BY 'password' WITH GRANT OPTION;返回OK:在这里插入图片描述

djangoValueError: Unable to configure handler ‘mail_admins’

可能的原因:

  • 可能是刚刚在源码因为复制(或修改)了一些东西(复制粘贴经常会报错,可能跟编码有关)

解决方法:

  • 改成手写,或者不修改源码,重启服务器python manage.py runserver
Reverse for ‘index’ with arguments ‘(3,)’ not found. 1 pattern(s) tried: [’$’]

可能的原因:

  • 反向解析的名字错误(不一定是拼写错误,可能是你指向的url的别名错误)

解决方法:

  • 根据报错的路由寻找模板中错误的反向解析
    在这里插入图片描述
SyntaxError at/xx/xx;invalid syntax Syntax(redis.py, line 815)

可能的原因:

  • redis源码中有关键字与python的冲突

解决方法:

  • 根据提示定位错误处,进入源码将所有该关键字替换为一个不冲突的名字
configparser.NoOptionError: No option ‘connect_timeout’ in section: ‘config

可能的原因:

  • 给出的配置文件的路径错误,使用了相对路径在这里插入图片描述
    解决方法:
  • 改成绝对路径
如何解决from user.models import User类似的红色下划波浪线报错:

将apps package标记为资源根目录,在apps目录内导入其他py文件时会从apps下开始寻找
在这里插入图片描述

ImportError: cannot import name ‘six’ from ‘django.utils’

原因:

  • django3six单独作为了一个包,而不是存在django.utils目录下

解决方法:

  • 方法一:直接进入虚拟环境site-packages中将安装的six.py复制到同目录下django目录下的utils目录中在这里插入图片描述

  • 方法二:将from django.utils import six的语句全都改成import six

解决上面问题之后可能会出现错误:**ImportError: cannot import name ‘python_2_unicode_compatible’**原因同上
解决方法:

  • 根据提示找到出错的模块,将出错的导入低吗改为from six import python_2_unicode_compatible(site-pakage下的six没有删除或移动到其他位置)或from django.utils.six import python_2_unicode_compatible(six.py移动到了django.utils目录下)
    在这里插入图片描述进入文件/home/image/Desktop/pyenv/fresh/lib/python3.6/site-packages/haystack/inputs.py修改在这里插入图片描述在这里插入图片描述

数据迁移常见报错之 django.db.utils.InternalError: (1060, “Duplicate column name ‘addr_id’”)

问题截图(原因):
在这里插入图片描述

  • 迁移的外键名与数据库中的列重复,迁移过的外键更改后又执行迁移,有时候无法避免,因为修改了一些数据,其报错效果类似下图新建一个外键字段一样:在这里插入图片描述

解决方法:

  • 从数据库删除报错的那一栏,使用navicat找到对应表,右键进入设计表模式,找到外键执行删除 (注意栏位【删除时】要改成级联CASCADE),on_delete=CASCADE代表删除主表时,关联的外键也会删除在这里插入图片描述
    然后记得删除与之相关联的不需要的栏位在这里插入图片描述
InternalError at /(1054, “Unknown column ‘banner_list.foreign_spu_id’ in ‘field list’”)

可能的原因

  • 增加了新的外键,但数据库表中没有这个外键栏
    解决方法:
  • 从数据库手动增加这个外键在这里插入图片描述
InternalError at /xxx/xxx/xxx(1364, “Field ‘foreign_spu_id’ doesn’t have a default value”)

在这里插入图片描述

原因

  • 就是外键缺一个默认值(不知为什么外键需要一个默认值,而且也并没有强制要设定这个参数)
    解决方法:
  • 想一个默认值,添加默认值参数(default=‘xxx’),或者给外键设置参数可以为空(null=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像目标分割_2 FCN(Fully Convolutional Networks for Semantic Segmentation)

6.2.1 FCN 背景介绍 图像语义分割:给定一张图片,对图片上每一个像素点进行分类!但是与图像分类目的不同,语义分割模型要具有像素级的密集预测能力才可以。 6.2.2 FCN介绍 6.2.2.1 全卷积网络 全卷积网络,模型由卷积…

求4个数字组成的不重复三位数,Python简洁解法

求4个数字组成的不重复三位数,Python解法 题目要求: 求所有由5,6,7,8组成的数字不重复的三位数 不重复的三位数,即不能出现555,566这种 通过分析,可以使用画树的方法来确定要求的三位数的值与个数 按照上图所示可以确定由5&am…

图像目标分割_3 SegNet + U-Net

6.3.1 SegNet背景 SegNet的主要动机是场景理解的应用。 难点:因此它在设计的时候考虑了要在预测期间保证内存和计算时间上的效率。分割的任务其实应用非常地广,需要理解各个像素之间的关系,比如要区分出人行道和车行道,建筑物和…

MIPI屏数据发送命令解析

MIPI数组发送那里有一个数组,这个数组包含寄存器和寄存器的值: 相当于: 0XC480寄存器下参数0X9C; 0XFF00寄存器下参数0XFF,0XFF,0XFF; 0XC0B5 尝试一下寄存器 0x08 0x18 0x48 0x58 试一下能不能旋转

面向对象之类的内建函数

类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况&…

图像目标分割_4 DeepLab-V1

6.4.1 DeepLab 背景 相比于传统的视觉算法(SIFT或HOG),Deep-CNN以其end-to-end方式获得了很好的效果。这样的成功部分可以归功于Deep-CNN对图像转换的平移不变性(invariance),这根本是源于重复的池化和下采样组合层。平移不变性增强了对数据分层抽象的能…

图像目标分割_5 DeepLab V2 V3 V3+

6.5.1 DeepLab V2 6.5.1.1 改变特点 atrous convolution采用ASPP ( atrous spatial pyramid pooling) 多尺度获得更好的分割效果合并深度卷积网络和概率图模型方法,增强对物体边界的定位。基础层由VGG16转为ResNet 和v1不同: 通过多尺度输入处理或者多…

Python导包、模块报错的问题

import报错No module named "xxx"的问题 如何将指定目录作为项目根目录,让项目根目录下的包/模块都可以直接导入?(linux下) Python导入模块时,解释器如何定位模块: 1.当前目录 2.内置模块列表 3…

CC2540 串口0 通道2配置

从图里面可以看出来,串口0有两个通道,一个通道是P02 P03两个GPIO口。 还有一个通道是P14 P15两个GPIO口。 在软件配置的时候,主要是配置的是一个通道相关的寄存器。 7.6.4 USART 0 The SFR register bit PERCFG.U0CFG selects whether to u…

图像目标分割_6 Mask RCNN

6.6.0 背景 目标检测和语义分割的效果在短时间内得到了很大的改善。在很大程度上,这些进步是由强大的基线系统驱动的,例如,分别用于目标检测和语义分割的Fast/Faster R-CNN和全卷积网络(FCN)框架。这些方法在概念上是直观的,提供…

SCI论文写作训练营笔记汇总01_概述+文献检索与管理

1 概述 1.1 适用人群 ①初涉科研, 目前或将来有英文科技论文发表需求的科研工作者 ②正在撰写或准备撰写英文科技论文的科研工作者 1.2 科技论文的基本结构 1.3 科技论文组成部分的写作方法 1.4 阅读文献的重要性 2、文献检索与管理 2.1 如何查找文献参考 2.2 文…

天猫11.11:搜索引擎实时秒级更新(转载)

搜索是很多用户在天猫购物时的第一入口,搜索结果会根据销量、库存、人气对商品进行排序,而商品的显示顺序往往会决定用户的选择,所以保证搜索结果的实时性和准确性非常重要。在电商系统中,特别是在“双十一”这样的高并发场景下&a…

OAD 空中升级

http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/69222/172351.aspx#172351第二十三节 OAD空中升级 通过仿真器更新程序或者通过USB更新固件那都是一般人都可以实现的操作,但是要想实现OAD空中升级…

SCI论文写作训练营笔记汇总02_英文科技论文阅读与解析

3、英文科技论文阅读与解析的方法 3.1 科技论文介绍 3.1.1 科技论文的类型 • Research • Review • Theoretical • Methodological • Case study 3.1.2 研究型论文的结构 3.1.3 科技论文的基本结构 3.2 文献阅读 3.2.1 文献选择的原则 3.2.2 文献阅读顺序 3.2.2 文献阅读…

报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused

(pyenv install xxx) 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused的解决方法 问题重现截图: 在查看下面的原因和使用解决方法之前,确保自己的pyenv已经安装好了最新的python-build&#xff0c…

SCI论文写作训练营笔记汇总03_科技论文写作(方法篇)

4、科技论文写作——方法篇 4.1 准备工作与概述 4.1.2 杂志编辑评估文章的标准 4.2 图表部分的写作方法 4.2.1 为什么使用图表 4.2.2 如何使用图表 4.2.3 如何选择图or表or文字 4.2.4 图片/表格制作软件 4.2.5 图片的各种指标 4.2.6 图片的分类 4.2.6 图注的使用 4.2.7 表格 …

SCI论文写作训练营笔记汇总04_科技论文写作(技巧篇)

1、语言点 1.1 时态 1.1.1 时态使用的基本原则 1.1.2 在引言部分的时态使用 1.1.3 在“材料与方法”部分的时态使用 1.1.4 在“结果”部分的时态使用 1.1.5 在“讨论”部分的时态使用 1.1.6 总结 1.2 语态 1.2.1 语态-主动/被动 1.2.2 语态-主动/被动的不同点 1.2.2 语态-主…

SCI论文写作训练营笔记汇总05_英文论文投稿流程与常见问题(完)

1 目标期刊的选择 1.1 文章未送审直接被拒稿的常见理由 1.2 目标期刊的选择 1.2.1 学科与影响力 1.2.2 影响因子 1.2.3 审稿平均周期 1.2.4 主编水平 1.2.5 版面费 2 根据期刊要求调整文章 2.1 具体 2.2 期刊的审查重点 2.3 期刊的审查列表 3 其他材料 3.1 稿件作者信息 3.…

动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题

动态规划(Dynamic Programming)思路和Python解题示例 动态规划是一种主要用来优化朴素递归的方法,每当输入不同值调用递归函数出现大量重复的(子)输入和调用(返回结果)时,就可以考虑…

【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据

1 逻辑回归与拟合过程 1.1 准备数据-code_01_moons.py(第1部分) import sklearn.datasets import torch import numpy as np import matplotlib.pyplot as plt from LogicNet_fun import LogicNet,plot_losses,predict,plot_decision_boundary# 1.1 准…