让网站引用字体,开发者账号是干嘛用的,微企点建好网站后要怎么做,为成长持续赋能记录django项目开发过程中的遇到的问题#xff0c;导致原因和已经奏效的解决方法
常见报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbc in position 852: invalid start byte
这个问题在一些电脑上做django开发时经常出现
要么是py文件运行是就报这个类似…记录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指令检查程序启动linuxservice mysql start检查MySQL是否有授予访问权利给当前发起连接的主机IP查看授权情况show grants for user1xx.xx.xx.xxuser是你在django配置中设置的数据库登录账号不想查看可直接执行授权操作
解决方法
授权GRANT ALL PRIVILEGES ON test.* TO user1xx.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_length4; 修改安全等级为low(0)set global validate_password_policy0; 再次查看密码安全策略show variables like %validate%; 再次对指定的IP主机授权GRANT ALL PRIVILEGES ON test.* TO user1xx.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/xxinvalid 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_compatiblesite-pakage下的six没有删除或移动到其他位置或from django.utils.six import python_2_unicode_compatiblesix.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找到对应表右键进入设计表模式找到外键执行删除 注意栏位【删除时】要改成级联CASCADEon_deleteCASCADE代表删除主表时关联的外键也会删除 然后记得删除与之相关联的不需要的栏位
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’或者给外键设置参数可以为空nullTrue