Django常见出错解决方案汇总

本文汇总了Django框架在开发过程中可能遇到的常见错误,包括模板类型错误、URL配置问题、编码错误以及其他运行时故障,为开发者提供了解决这些问题的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、模板类型错误:

错误原因:在models中漏掉了return:


 

【这里】加上return即可。


二、url相关错误

静态文件无法访问,如样式出不来

 

css样式总出不来,折腾了一个多小时,原来,urlpatterns 写成这样:
我把 [登录注册] url后面也写成 = 而并非+= ,这就造成了url覆盖,所以就加载不了静态文件,同时首页也会打不开。


三、编码错误

错误类型如下:


 

解决方案:

 

混淆了 python2 里边的 str 和 unicode 数据类型。

 

(0)、你需要的是让编码用实际编码而不是 ascii

 

(1)、对需要 str->unicode 的代码,可以在前边写上
 


 

把 str 编码由 ascii 改为 utf8 (或 gb18030)

 

(2)、python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii

 


四、其他错误

Django POST请求错误forbidden(403) CSRF verification failed. Request aborted

 

在 settings.py 中的MIDDLEWARE_CLASSES 设置下 添加
'django.middleware.csrf.CsrfResponseMiddleware',
重新 runserver.   OK

 

我用的是django1.2.3,当使用session时,也会像上面出错,这时把下面注释掉即可:

 

# 'django.middleware.csrf.CsrfViewMiddleware', #这段代码理应注释掉,在使用session的时候
login:login() takes exactly 1 argument (2 given)

 

这在登录视图函数的时候特别常见,原因就是函数login与login模块的名字冲突,如登录url这样写:
 

 

  那么,对应的视图函数如下:
 

 

当然如果这样写,不要忘记导入:
 


 

这样就坏事了,因为出现了两个login.这就导致了上面的问题,解决办法有两个,
修改login视图函数的名称和对应的url中。如webLogin
导入设置:from ..login as _login 这样也行,别忘了都要改过来。

无法跳转

如,我想登录。然后登录成功后跳转到主页,如上:把上面代码改写成这样
 


 

但是却没有实现跳转,如下:

 

这里并不是跳转写错了,而是没有注意到我这个登录界面是ajax POST形式的,代码如下:
//登录
 


 

Query.post( url, [data], [callback], [type] ) :

 

如果返回,它只返回一个字符串。所以并不能在后台跳转。
解决方法是: return HttpResponse('ok'),通过接受返回的Ok 来在前台实现跳转。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值