Django的几个错误解决(不定期更新)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

背景:python和django的版本如图:

wKiom1f59A3TddIDAABXiozOC1s107.png

然后我通过#django-admin startproject mysite建立一个project叫mysite,然后通过#django-admin startapp learn建立了一个app叫learn。


[问题1]把里面的文件都配置完毕之后,在mysite的一级目录里执行#python manage.py runserver的时候爆出如下错误:

wKioL1f58hvjl50mAAEh0vVGWP8120.png

[解决]把learn必须要放在mysite的一级文件夹里。



[问题2]把learn放在mysite的一级文件夹里后,执行#python manage.py runserver,出现如下错误:

wKiom1f58x3hg71fAAFaEOXo3yA536.png

[解决]执行#yum install python-sqlite即可。


[问题3]我要在别的电脑上登陆看这台服务器上的页面,应该怎么办?

[解决]#python manage.py runserver 0.0.0.0:8000,然后在浏览器里登陆此服务器的“外网ip网址:8000”即可。


[问题4]出现You're accessing the development server over HTTPS, but it only supports HTTP.

wKiom1gFjiujt-G5AAB8aAWrwOs022.png

[解决]把secure_ssl_redirect这个值由ture改成false。


[问题5]执行python manage.py validate的时候出现“IOError: No translation files found for default language zh-CN.”的错误。

[解决]去settings.py里把LANGUAGE_CODE那一段改成LANGUAGE_CODE = 'zh-Hans',如果使用'zh-Hant'就是繁体中文的意思。


[问题6]python manage.py validate失败,如图:

wKiom1i8z6jR15kHAAAdyHrPanU311.png

[解决]Django 1.7版本以上的改用“python manage.py check”这个命令了。


[问题7]python manage.py check的时候爆“ImportError: cannot import name patterns”错误。

[解决]django在1.8之后就没有patterns这个模块了,需要把文件里的

1
  import  patterns, include, url

改成

1
import  include, url

官方解释:


[问题8]python manage.py check的时候爆“Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form NetworkAssetForm needs updating.”错误。

[解决]这个因为django 1.8+在forms文件中声明TestModelForm限定了可执行的域(我有一句马卖批一定要对python讲),所以只要添加如下一句就可以了:

1
2
3
4
class  NetworkAssetForm(forms.ModelForm):
     class  Meta:
         model  =  NetworkAsset
         fields  =  '__all__'                 #添加这句话


[问题9]启动runserver之后,出现

DisallowedHost at /

Invalid HTTP_HOST header: '外网地址:8000'. You may need to add u'外网地址' to ALLOWED_HOSTS.

这个错误。

[解决]在你的那个project名字文件夹里,找到setting.py,然后找到下面的地方

1
ALLOWED_HOSTS  =  [ '*' ]         #在里面加上'*'


[问题10]使用uwsgi+nginx启动之后,登陆django发现ImportError: No module named 'xxx',但是使用manage.py却是正常的。

如果之前没有这个情况的话,那么考虑一下project的文件夹权限问题,很有可能是因为权限不正确,导致nginx用户无法访问project文件夹。或者看一下.py文件的权限问题。


[问题11]某服务后端server时不时的connection refused

前面是Nginx,后面是uwsgi,日志中时不时出现下面的内容

1
[error] 54 #54: *1644 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.5, server: _, request: "POST /log HTTP/1.1", upstream: "http://[::1]:10000/log", host: "mgt-api"

找了好久也没找到原因,比较确定的是不是后面的uwsgi挂掉了,之后tcpdump抓包,发现每次出现问题的都是一个IPV6的地址,结合上面的日志恍然大悟,原来是Nginx反向代理写的是 localhost 而不是 127.0.0.1 ,而且在host文件中是

127.0.0.1   localhost

::1             localhost

gethostbyname 在多个IP的情况下,返回结果是随机的,导致有时候被解析到了IPV6的地址上了。


[问题12]ImportError: No module named 'bootstrapform'

没装bootstrapform

pip install django-bootstrap-form


[问题13]启动django的时候,出现mysql报错的问题

出现下图的问题:

wKiom1jrTXaRslrcAAA2oYXqdrg378.png

这个时候,在setting.py文件里的DATABASES字段添加OPTIONS字段,如图:

wKiom1jrThny8eSHAABlR8Xnoxg468.png


[问题14]EnvironmentError: mysql_config not found

准备用django框架做个小的Demo,在python manage.py syncdb 时出现了No module named MySQLdb的错误,很明显是因为缺少相关的类库.原以为使用PyCharm安装MySQLdb会很容易(PyCharm–Preferences–Project Interpreter–Python Interpreters–Install 然后搜索mysql,找到MySQL-python安装.)


可是总是安装失败,根据提示查看日志, 提示错误为:EnvironmentError: mysql_config not found,


在stackoverflow上找到解决办法:在PATH里增加 /usr/local/mysql/bin

vim ~/.bash_profile

然后添加:

export PATH=${PATH}:/usr/local/mysql/bin

使更改生效:

source ~/.bash_profile

再次安装mysql-python,就已经成功安装了.


如果上面的方法仍然解决不了问题,直接打开终端,输入


sudo easy_install MySQL-python

安装完成之后可以在Python解释器中测试一下

输入

import MySQLdb #注意大小写!!

如果不报错,就证明安装成功了.



参考资料:http://www.jianshu.com/p/d15188a74104

参考资料:http://www.cnblogs.com/fnng/p/4373108.html

参考资料:http://www.ziqiangxuetang.com/django/django-views-urls.html


 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1859830


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
XML 关系型数据库 MySQL
手把手教你在centos上配置Django项目(超详细步骤)
手把手教你在centos上配置Django项目(超详细步骤)
2674 0
手把手教你在centos上配置Django项目(超详细步骤)
|
5月前
|
关系型数据库 MySQL 编译器
记录一个Django相关的异常(mysqlclient老生常谈)
记录一个Django相关的异常(mysqlclient老生常谈)
205 2
|
5月前
|
前端开发 JavaScript 安全
Django入门到放弃之常见配置及基本命令
Django入门到放弃之常见配置及基本命令
|
5月前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置
|
5月前
|
Linux Shell 数据库
python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装、基本命令、视图与网站
|
7月前
|
Python
将Django项目从本地上传至宝塔服务器(踩坑记录)
将Django项目从本地上传至宝塔服务器(踩坑记录)
82 2
【Django】如何查看已安装Django的版本
【Django】如何查看已安装Django的版本
|
自然语言处理 API Python
喜大普奔!Django官方文档终于出中文版了
之前对于 Django 的学习我一直推荐看官方文档,但不得不加上一句“如果你英语水平允许的话……”。现在总算是等来好日子了。各位想向网站/服务器开发方向进阶的同学不要错过,这份官方文档的价值绝对超过市面上任何一本 Django 教材。
django drf 常用命令和常见问题
django drf 常用命令和常见问题
|
PHP Windows
ThinkPHP5通过composer安装Workerman安装失败问题(避坑指南)
ThinkPHP5通过composer安装Workerman安装失败问题(避坑指南)
393 0