我的环境是: 1.服务器是apache 2.4 2. python 3.3,django 1.6 3. windows
django的views.py:
import simplejson as json
from django.views.generic import View
from django.views.decorators import csrf_exempt
from django.contrib import auth
from django.http import HttpResponse
class LoginFormView(View):
template_name = 'game/login.html'
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
def get(self, request, *args, **kwargs):
return render(request, self.template_name, {})
def post(self, request, *args, **kwargs):
if request.is_ajax():
username = request.POST['input_username']
password = request.POST['input_password']
user = auth.authenticate(username=username,
password=password)
payload = {}
if user is not None and user.is_active:
auth.login(request, user)
payload['msg'] = 'successful login'
else:
payload['msg'] = 'login failed'
return HttpResponse(json.dumps(payload),
mimetype = 'application/json')
else:
return HttpResponse("Error: Request is not through ajax")
我的js文件是:
$(document).ready(function() {
$('#submit_btn').bind('click', function(){
$.ajax({
url: "/game/login/",
data: $('#login_form').serialize(),
dataType: "json",
type: "POST",
success: function(data){
console.info(data);
//do some things
}
})
})
})
我的问题是: django可以获取用户名和密码,用户可以通过身份验证,我想将一些消息返回给客户端,但是js代码无法从django获取json数据,在firebug中,json数据包含一条记录{“状态”:"成功"}或{“状态”:"失败"},我不知道{“状态”:"成功&# 34;}来自,我无法获得自定义消息,firebug总是向我显示" undefined"。 Easyui的代码问题是什么? 我非常需要你的帮助!
答案 0 :(得分:0)
我得到了答案。 原因是mod_wsgi的运行模式。 如果使用mod_wsgi的嵌入模式,django的代码保存在RAM中,目的是提高速度。所以一旦django的代码改变了,我们就必须重新启动apache的http服务。为了避免这种情况,我们可以使用mod_wsgi的deamon模式。