记录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)

Django开发中问题和报错集合相关推荐

  1. java 更新ui_你怎么解决Android开发中更新UI报错的异常吗-百度经验

    执行上述代码. 在App中点击"变透明"的按钮后,App就退出了. logcat中打印了这个错: 03-20 14:47:31.326 11640-11796/com.exampl ...

  2. 微信分享到朋友圈的链接没有图片。开发工具中正常没有报错-解决方案

    重要的话说三遍 一定要保证你写的程序调用的接口,在"微信开发工具"中正常没有报错 一定要保证你写的程序调用的接口,在"微信开发工具"中正常没有报错 一定要保证你 ...

  3. PyCharm使用期间出现报错集合 持续更新ing

    PyCharm使用期间出现报错集合 持续更新ing 啥时候用PyCharm发现了奇奇怪怪的错误就整理上来 这几天帮同学安装torch的时候出现了一些奇奇怪怪的问题 1.torch始终安装失败 描述一下 ...

  4. CodeLite开发Gtk 语法检查报错

    CodeLite开发Gtk 语法检查报错 Unknown type name 'namespace' ,自动补全出错 问题描述 解决 问题描述 使用CodeLite创建Gtkmm C++项目,默认生成 ...

  5. .Net Core通过NPOI在CentOS 7(Docker)环境中导出Excel报错The type initializer for ‘Gdip‘ 的问题

    一.前言 今天在AspNetCore5.0环境中做了一个导出Excel的功能,在开发机器上(windows10)调试正常,但是部署到centos7容器(容器基础环境mcr.microsoft.com/ ...

  6. 野火霸道开发板 STM32 keil5 报错:flash download failed-cortex M3解决方法

    起因是我使用野火霸道开发板报错了,报错现象如下图 后来修改后我发现必须要在keil中修改参数如下图 需要在选择好芯片型号 设置使用DAP

  7. LibreOffice - LibreOffice报错集合

    LibreOffice - LibreOffice报错集合 文章目录 LibreOffice - LibreOffice报错集合 前言 背景 问题描述 问题分析 解决方法 解决方法一 解决方法二 总结 ...

  8. 《一起学习rgbdSLAM》中g2o部分报错的问题

    <一起学习rgbdSLAM>中g2o部分报错的问题 在高博的<一起学习rgbdSLAM>第六讲中使用到了g2o工具.但是由于版本问题,按照高博的写法来编写代码在编译过程中会报错 ...

  9. [Git] 拉开发分支的代码报错

    Git拉开发分支的代码报错: fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed ...

最新文章

  1. 德鲁克的黄金管理20条—------中高层管理必修课
  2. 【操作】vue-markdown使用
  3. html常用标签(form标签)
  4. 采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)
  5. 呼吁开放外网_服装数据集:呼吁采取行动
  6. Taro+react开发(33) Super expression must either be null or a function, not undefined
  7. C库函数—strcpy实现
  8. 编译错误: Too much data space used by DLL's in MODULES section
  9. 1 Linux系统性能测试与监测工具汇总
  10. js中的children实时获取子元素
  11. 分享一款影视源码_爱客影院网站3.5.6版本
  12. 【Godot】行为树(一)了解与设计行为树代码
  13. arctanx麦克劳林公式推导过程_高中数学三角函数公式大全,竞赛高考都适用(含公式推导)...
  14. veu-cli 3.0使用教程
  15. 3600000毫秒等于多少小时,一小时等于多少毫秒
  16. 网络重置后WLAN网络找不到怎么办?
  17. TCP连接建立三握手
  18. 实用软件/浏览器插件/网站合集(个人向,更新中)
  19. 【科普】始于颜值,终于实力:五镜头倾斜相机、双镜头倾斜相机介绍
  20. php网站搬家怎么打包,搬家时打包衣柜的5种方法

热门文章

  1. 开关语句、循环语句、goto
  2. 圆锥曲线万能弦长公式_2020高考数学50条秒杀型公式与方法
  3. python 分类变量xgboost_【转】XGBoost参数调优完全指南(附Python代码)
  4. python pip install指定国内源镜像
  5. java自动注入注解_Spring自动注解标签@Autowired不能注入xml配置的bean吗?
  6. lisp语言cond和if套用_LISP - 决策
  7. 【Keras】30 秒上手 Keras+实例对mnist手写数字进行识别准确率达99%以上
  8. html中的url、href、src的区别
  9. mysql非主键索引_主键索引和非主键索引的区别
  10. MFC读取配置文件GetPrivateProfileString