def get(self): user_id = self.get_argument("user_id","") user_pwd = self.get_argument("user_pwd","") try: query = self.session.query(User).filter(User.user_id==user_id,User.user_passwd==user_pwd).one() #不要用下面的字符串拼接的方式查询,会造成sql注入。不信你可以试试。 #query = self.session.query(User).filter('user_id=%s and user_passwd=%s'%(user_id,user_pwd)).one() #生成token 算法 base64(md5(userid+userpwd) + md5(timestampofnow)) token = Utils.md5(user_id+user_pwd)+Utils.md5(str(DateUtil.get_now_timestamp())) token = Utils.base64(token) #更新token时间 starttime = DateUtil.get_token_starttime() endtime = DateUtil.get_token_endtime() try: query = self.session.query(Token).filter(Token.user_id==user_id) #查询数据库中已有token值 old_token = query.one() #存在token 更新 不存在则会抛异常 query.update({Token.token:token, Token.starttime:starttime, Token.endtime:endtime}) except Exception,e: print type(e) if type(e) is NoResultFound: new_token = Token(token=token,user_id=user_id,starttime=starttime,endtime=endtime) self.session.add(new_token) self.session.commit() #注意别忘了commit self.dic = dict({"error":0, "user_id":user_id, "user_pwd":user_pwd, "token":token})