Beispiel #1
0
 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}
Beispiel #2
0
    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()
Beispiel #3
0
    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 '修改')+'成功'}
Beispiel #4
0
    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': '退出成功!'}
Beispiel #5
0
 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)}
Beispiel #6
0
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)
Beispiel #7
0
 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': '删除成功'}