如果要处理javascript的ajax请求,用python做后台语言应该怎么写?用python的框架flask呢?

在用户注册的时候,想用ajax方式验证用户输入的账号是否被占用,可是服务器端不知道怎么用python实现。
我最近在学python的框架flask,用flask应该怎么写,用原生python的方式又该怎么写?

具体功能:

  1. python检查用户输入的用户名,如果该用户名在数据库中存在,返回no。如果不是,返回ok。

  2. 这边的javascript的回调函数检查服务器端返回的字符,如果是ok,在输入框旁显示已用户名可用。如果不是ok,显示用户名已被占用。

这是我前台的javascript,已经实现了上述的第2个功能。

function initPage() {
  document.getElementById("username").onblur = checkUsername;
  document.getElementById("register").disabled = true;
}

function checkUsername() {
  document.getElementById("username").className = "thinking";
  request = createRequest();
  if (request == null)
    alert("Unable to create request");
  else {
    var theName = document.getElementById("username").value;
    var username = escape(theName);
    var url= "checkName.php?username=" + username;
    request.onreadystatechange = showUsernameStatus;
    request.open("GET", url, true);
    request.send(null);
  }
}

function showUsernameStatus() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      if (request.responseText == "okay") {
        document.getElementById("username").className = "approved";
        document.getElementById("register").disabled = false;
      } else {
        document.getElementById("username").className = "denied";
        document.getElementById("username").focus();
        document.getElementById("username").select();
        document.getElementById("register").disabled = true;
      }
    }
  }
}

下面是用flask简单地模拟验证的过程,可是访问主页后返回是一个字符。我想实现的是在index页面上输入框中输入文字,然后进行响应。现在页面直接变成了一个字符。

from flask import Flask,request,render_template

app = Flask(__name__)

@app.route('/',methods=['POST','GET'])
def index():
    data_set = ['bill','ted']
    searchword = request.args.get('username')
    if searchword not in data_set:
        return 'okay'
    return render_template('registration.html')


if __name__=='__main__':
    app.run()
    
 

clipboard.png

阅读 4.6k
1 个回答

前后台分离了,那Python后台需要实现Restful API。
比如:

前后台用这个接口来交互。前台你已经写好了。
后台你可以使用Python的框架Django,Flask或者Paramid。

  • Django: Django Restful Framework

  • Flask: Flask-Restful

  • Paramid: paramid-restful-toolkit

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题