HTML + AJAX + Python + Session?

3 投票
1 回答
2278 浏览
提问于 2025-04-16 21:40

我正在尝试理解如何将AJAX与Python会话结合使用。我明白会话的基本原理。但是,当我把AJAX加进来时,我就有点搞不清楚具体的技术细节了。有时候我觉得AJAX和Python会话可能不太能一起用。我知道有一些网页框架可以处理这些复杂的事情,但我想在跳入框架之前,先自己学会怎么做。

我想创建一个网页,里面有一个登录表单,使用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会话代码时参考这篇文档。这样可以吗?
我考虑使用jQuery来处理AJAX相关的内容和其他JavaScript编程。

谢谢!

1 个回答

1

记住,AJAX请求和其他任何向服务器发送的HTTP请求是一样的。会话信息是在服务器那边保存的,但从服务器的角度来看,浏览器发来的请求就是浏览器发来的请求。AJAX请求可以像其他请求一样获取和设置cookie。你上面提到的方法应该没问题。另外,你也可以在首页检查一下会话是否存在,然后再写入cookie。

撰写回答