django view 中使用 session ,HttpResponse 不响应

2015-06-13 12:49:55 +08:00
 yss0729

登录

def login(request):
username = None
pwd =None;
db = sqlhelper.sqlhelper()
if request.method =='GET':
username = request.GET['username']
pwd = request.GET['pwd']
result =db.executeReader('select count(*) as count from susers where userid =\'%s\' and password =\'%s\'' % (username,pwd))
rtv = result[0][0]
if(rtv==1):
request.session['userid'] = username
return HttpResponse(rtv)
else:
pass

rtv 的值打印为1 但js客户端就是回调不了结果,如果我去掉session就可以接受的到,想不通是什么原因,session是没问题的,我赋值取值都OK,请前辈帮忙看看,前台js代码如下

$(document).ready(function(){
$('#login').click(function(){
var username =$('#username').val();
var pwd = $('#pwd').val();
$.get("login",{'username':username,'pwd':pwd},function(ret){
if(ret ==1){
location.href = 'main';
}else{
alert('用户名或密码错误');
}
});

});
    });
2393 次点击
所在节点    Python
8 条回复
mornlight
2015-06-13 14:14:14 +08:00
你不说我都不相信这是Django...
回调不了结果你应该先抓包看看返回值是什么,和你预期的返回值是否一致。
hupeng
2015-06-13 15:52:16 +08:00
没缩进,完全没法看
virusdefender
2015-06-13 18:41:28 +08:00
这写的是什么鬼django代码,是这么用的么…先用浏览器开发者工具看下响应是什么
yuyang
2015-06-13 22:26:10 +08:00
额滴神,这种写法真是开眼了。
cbsw
2015-06-13 22:42:35 +08:00
我还是第一次见Django中这样使用db的,另外py代码不缩进根本没法看,所以扔到 gist 里再贴过来吧
imlonghao
2015-06-14 21:08:10 +08:00
Django 需要 db.executeReader 么?
yss0729
2015-06-15 10:02:00 +08:00
@mornlight,@virusdefender ,@cbsw 呵呵, 让大家伙见笑啦, 因为之前不是做web的, 想做一个比较简单的维护工具, 也没有很复杂的业务逻辑, 后悔当时没有使用flask的, 我不需要用到orm框架 还有admin 包括我的数据库都是MSsql ,完全可以用asp.net 但个人真的不喜欢用微软那套东西, 另外根据你的方法我在响应信息里发现报出这个错误

OperationalError at /login
no such table: django_session

字面意思, 是我需要建立一张session表? 这个表是数据表还是一张抽象的表?
request.session 难道不是传统意义上存在于服务器运行周期里的session吗?
yss0729
2015-06-15 10:20:04 +08:00
已经参考百度了, 执行了
python manage.py syncdb (个人觉得,这个比较坑,session组件还要安装)
这个后就好了, 谢谢各位大神

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX