def post(self): parserImg = self.parser.copy() parserImg.remove_argument('opt') parserImg.add_argument('token') parserImg.add_argument('img', type=FileStorage, location='files', required=True, help='必须选择要上传的文件') args = parserImg.parse_args() img: FileStorage = args.get('img') print(img) imgName = str(uuid.uuid4()).replace('-', '') imgName += '.' + img.filename.split('.')[-1] img.save(os.path.join(settings.MEDIA_DIR, imgName)) imgPath = '/app/static/uploads/' + imgName token = args.get('token') user_id = session.get(token) print('我的id是', user_id) qs = dao.getById(User, user_id) if not qs: return {'status': 201, 'msg': '请先登录'} qs.photo_1 = imgPath dao.save(qs) return {'status': 200, 'imgpath': imgPath}
def get(self): # 从请求参数中获取opt和token参数值 # 如果opt 为active ,则从redis缓存中查询token对应的user.id # 再通过 user.id查询数据库中用户, 最后更新用户的is_active状态为True args = self.parser.parse_args() opt = args.get('opt') if opt == 'active': avtiveParser = self.parser.copy() avtiveParser.add_argument('token', required=True, help='必须提供激活的token') args = avtiveParser.parse_args() token = args.get('token') print(token) user_id = app.ext.cache.get(token) print(user_id) if user_id: user = dao.getById(User, user_id) print(user) user.is_active = True dao.save(user) return {'msg': user.nickName + '激活成功'} else: active_url = request.host_url + 'account/?opt=reactive' return {'msg': '本次激活已过期,需要重新申请激活' + active_url} elif opt == 'login': return self.login() elif opt == 'reactive': return self.reactive() elif opt == 'logout': return self.logout()
def check_in(self,qx): addmovie = self.parser.copy() # addmovieAction.remove_argument('flag') addmovie.remove_argument('limit') addmovie.add_argument('mId', type=int, required=True, help='必须提供电影id') addmovie.add_argument('showname', required=True, help='必须提供电影名') addmovie.add_argument('showname', required=True, help='必须提供电影名') addmovie.add_argument('shownameen', required=True, help='必须提供电影英文名') addmovie.add_argument('director', required=True, help='必须提供导演名') addmovie.add_argument('leadingRole', required=True, help='必须提供导主演') addmovie.add_argument('type', required=True, help='必须提供电影类型') addmovie.add_argument('country', required=True, help='必须提供国家') addmovie.add_argument('language', required=True, help='必须提供语言') addmovie.add_argument('duration', type=int, required=True, help='必须提供int类型的参数') addmovie.add_argument('screeningmodel', required=True, help='必须提供上映模式') addmovie.add_argument('openday', required=True, help='必须提供上映时间') addmovie.add_argument('backgroundpicture', required=True, help='必须提供背景图片') addmovie.add_argument('isdelete', default=0) addmovie.add_argument('opt', required=True, help='请指定操作') args=addmovie.parse_args() movie=dao.getById(Movies,args.get('mId')) if qx==QX.ADD_QX: if movie: return {'msg':'你添加的电影存在'} movie = Movies() elif qx==QX.EDIT_QX: if not movie: return {'msg':'你要修改的电影不存在'} for key,value in args.items(): if hasattr(movie,key): setattr(movie,key,value) dao.save(movie) return {'msg':('添加' if qx==QX.ADD_QX else '修改')+'成功'}
def logout(self): myParser = self.parser.copy() myParser.add_argument('token', required=True, help='用户退出必须提供token参数') args = myParser.parse_args() token = args.get('token') user_id = session.get(token) if not user_id: return {'status': 701, 'msg': '用户未登录,请先登录!'} u = dao.getById(User, user_id) if not u: return {'status': 702, 'msg': '用户退出失败,token无效!'} session.pop(token) # 从session中删除token return {'status': 200, 'msg': '退出成功!'}
def wrapper(*args, **kwargs): # wrapperActive = MoviesApi.parser.copy() # wrapperActive.remove_argument('flag') # args = wrapperActive.parse_args() print('--check login--') token = request.form.get('token') if not token: token=request.args.get('token') user_id = session.get(token) if not user_id: return {'msg': '用户必须先登录'} loginUser: User = dao.getById(User, user_id) if loginUser.rights & qx == qx: return fun(*args, **kwargs) else: qxObj = dao.query(Qx).filter(Qx.right == qx).first return {'msg': '用户没有{}权限'.format(qxObj.name)}
def sendMail(uId): with manage.app.test_request_context(): u = dao.getById(User, uId) token = getToken() ext.cache.set(token, u.id, timeout=60) # ??? active_url = request.host_url + 'account/?opt=active&token=' + token # 发送邮件 msg = Message(subject='tpp用户激活', recipients=[u.email], sender='*****@*****.**') # msg.html = '<h1>{}注册成功</h1><h3>请先<a href={}>激活</a>注册账号</h3><h2>或者复制地址到浏览器:{}</h2>'.format(u.name, active_url,active_url) msg.html = render_template('msg.html', user=u, active_url=active_url) try: ext.mail.send(msg) print('邮件已发送') except Exception as e: print(e)
def delete(self): # 删除影片功能 # mid = request.args.get('mid') # 从session里拿token # user_id = session.get(request.args.get('token')) # if not user_id: # return {'msg':'请先登录'} # loginUser:User = dao.getById(User,user_id) # if loginUser.rights & QX.DELETE_QX == QX.DELETE_QX: # movie = dao.getById(Movies,mid) # if not movie: # return {'msg':'影片不存在'} # dao.delete(movie) # return {'msg':'删除成功'} # return {'msg':'你没有删除权限'} mid = request.args.get('mid') movie = dao.getById(Movies, mid) if not movie: return {'msg': '影片不存在'} dao.delete(movie) return {'msg': '删除成功'}