免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bleem1998
打印 上一主题 下一主题

制作mod_python登录页面不成功 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-05-15 20:09 |只看该作者
你的问题其实是由逻辑错误导致的
在mod_python平台下,.py是用来处理数据的,.psp|.html是用来显示数据的

论坛徽章:
0
22 [报告]
发表于 2006-05-15 20:32 |只看该作者
这么严重阿
我只是想做个登陆的东西
在PSP里把表单提交给.py文件处理
就这么个简单的操作而已阿

论坛徽章:
0
23 [报告]
发表于 2006-05-15 20:38 |只看该作者
这个是我做的
入口在sessiontest1.py上,而不是在login.psp上

sessiontest1.py

  1. from mod_python import Session,apache,psp,util

  2. def index(req):
  3.     session=Session.Session(req)
  4.     if session.is_new():
  5.         return psp.PSP(req,'login.psp',vars={'backuri':req.uri})
  6.     try:
  7.         session['hits']+=1
  8.     except:
  9.         session['hits']=1
  10.     session.save()

  11.     req.content_type='text/plain'
  12.     return 'Hits:%s\n'%session['hits']

  13. def login(req,username='',password='',backuri=''):
  14.     session=Session.Session(req)
  15.     if not backuri:
  16.         backuri='/'
  17.     if username=='a' and password=='b':
  18.         session['username']=username
  19.         session.save()
  20.         util.redirect(req,backuri)
  21.     else:
  22.         return psp.PSP(req,'login.psp',vars={'backuri':backuri})
复制代码


login.psp

  1. <html>
  2. <body>
  3. <%=backuri%>
  4. <form action="/py/sessiontest1.py/login" method="post">
  5. <input type="hidden" name="backuri" value="<%=backuri%>" />
  6. <input type="text" name="username" />
  7. <input type="password" name="password" />
  8. <input type="submit" value="ok" />
  9. </form>
  10. </body>
  11. </html>
复制代码

论坛徽章:
0
24 [报告]
发表于 2006-05-15 20:41 |只看该作者
做上面的程序时我发现return语句并不会用原来的session,所以采用重定向功能保持原来的session
原帖由 bleem1998 于 2006-5-15 20:32 发表
这么严重阿
我只是想做个登陆的东西
在PSP里把表单提交给.py文件处理
就这么个简单的操作而已阿

做登陆的东西我觉得还是cookie功能多一些,可以把cookie保存在客户端,以后的时候自动登陆,而且想保存多久就多久,想不保存也行。session就没办法了
另外比较安全的做法应该是cookie和session共用吧?这个就没研究过了

[ 本帖最后由 newbuding 于 2006-5-15 20:46 编辑 ]

论坛徽章:
0
25 [报告]
发表于 2006-05-15 21:12 |只看该作者
为什么我不能import psp呢

  1. ImportError: cannot import name psp
复制代码

论坛徽章:
0
26 [报告]
发表于 2006-05-16 07:23 |只看该作者
你仔细看看,我是这么写的
from mod_python import Session,apache,psp,util
你也可以这样写

  1. from mod_python import Session
  2. from mod_python import apache
  3. from mod_python import psp
  4. from mod_python import util
复制代码


python 的语法很灵活的

[ 本帖最后由 newbuding 于 2006-5-16 07:25 编辑 ]

论坛徽章:
0
27 [报告]
发表于 2006-05-16 09:13 |只看该作者
在windows下可以在linux下不行
原因不明正在找

论坛徽章:
0
28 [报告]
发表于 2006-05-16 09:39 |只看该作者
原来有人和我遇到同样的错误了
可是好像没人解答
http://www.modpython.org/piperma ... ecember/017009.html

论坛徽章:
0
29 [报告]
发表于 2006-05-16 10:51 |只看该作者
在牛牛的帮助下终于跑起来了
newbuding你的代码可以工作鸟
写的不错学习了
不过publisher里保存的session
在PSP里依然是不可见的
所以在登录中做session.save()这个动作的最好还是用PSP
这就是我得出的最终结论
呵呵

论坛徽章:
0
30 [报告]
发表于 2006-05-16 12:27 |只看该作者
牛牛是谁啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP