2011-07-16 38 views
3

我想了解如何在Python会话中使用AJAX。我了解会话如何工作的基础知识。当我将AJAX添加到组合中时,我的头脑很难理解技术细节。部分我认为AJAX和Python Sessoins是不可能的。我知道web框架存在,可能会做所有这些魔术,但我想在跳入框架之前自己学习如何做。HTML + AJAX + Python + Session?

我正在尝试使用HTML,AJAX,Python和会话创建一个带有登录窗体的网页。如果用户能够登录,应创建一个会话(我认为这是正确的)。否则,应该返回一条错误消息。

这里是基本的应用程序布局:

  • 的login.html:HTML表单的用户名与密码&输入框和 提交按钮
  • ajax.js:包含AJAX功能有服务器通信方 脚本
  • check_user.py:检查用户名是否为&密码正确,创建 会话或返回错误
  • welcome.html:只有用户名&密码是正确的访问
  • welcome_1.html:只有用户名&密码是正确的访问

我宁愿保持HTML,JavaScript和Python代码中分离文件,而不是使用Python创建HTML或使用HTML中的内联Javascript。

这里是应用程序逻辑:

user visits login.html 
    enters username & password 
    clicks submit button 
     submit button calls ajax function 
     ajax function sends username & password to check_user.py 
     check_user.py checks if username & password are correct 
      if not correct, return JSON formatted error message 
      else, correct 
       create session ID (SID) 
       place SID in cookie 
       return cookie to ajax function 
       redirect user to welcome.html 

welcome.html 
    on page load, ajax function requests user's cookie 
     if no cookie, redirect to login.html 
     else, ajax function sends cookie to check_user.py 
      check_user.py opens cookie & verifies the SID 
       if not correct, redirect user to login.html 
       else, correct 
        redirect user to welcome.html

我想我误解AJAX是应该如何处理返回的cookie信息。我也有可能误解其他部分。请澄清:-)

我想我会在编写我的Python会话代码时遵循this document。好吧?
我正在考虑使用jQuery的AJAX的东西和其他Javascript编码。

谢谢!

+0

你有任何代码了吗?你有没有决定使用什么实现? WSGI直接(不!)或框架(如Django或Flask - 我喜欢并推荐Django)? –

+0

(使用CGI不是一个好主意,尽可能使用WSGI部署。) –

回答

1

请记住,AJAX请求与对服务器的任何其他HTTP请求相同。会话在服务器端进行维护,但就服务器而言,来自浏览器的请求是来自浏览器的请求。 AJAX请求可以像其他任何请求一样获取和设置cookie。你上面列出的方法应该可以正常工作。或者,您可以在首页检查会话的存在,然后写入cookie。