Пример #1
0
    def error_predict():
        parmStr = request.get_data()
        paramDict = json.loads(parmStr)
        testline = paramDict['index']


        """
        获取用户信息
        :return: json
        """
        auth = Auth()
        result = auth.identify(request)

        if (result['status']):
            test_datas = readDataLine(testline)
            if test_datas != None:
                test_feature_datas = tf_transformer.transform(test_datas)

                # 进行预测
                pred = model.predict(test_feature_datas)
                result = le.inverse_transform(pred)
                print ('预测结果:%s,预测内容:%s' % (result[0], testline))
                #logging.debug('预测结果:%s,预测内容:%s' % (result[0], testline))
                return result[0]
            return "this is None"
        else:
            return jsonify(result)
Пример #2
0
 def login():
     """
     用户登录
     :return: json
     """
     user_name = request.form.get('user_name')
     password = request.form.get('password')
     auth = Auth()
     if (not user_name or not password):
         return jsonify(common.falseReturn('', '用户名和密码不能为空'))
     else:
         return auth.authenticate(user_name, password)
Пример #3
0
 def random():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         t1 = request.args.get('t1')
         t2 = request.args.get('t2')
         result = []
         if t1 and t2:
             print(123123)
             r = db.aggregate([{
                 "$match": {
                     "t1": t1,
                     "t2": t2
                 }
             }, {
                 "$sample": {
                     "size": 5
                 }
             }])
         else:
             print('2xxx')
             r = db.aggregate([{"$sample": {"size": 5}}])
         for i in r:
             i['_id'] = 1
             result.append(i)
         return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #4
0
def upload454666():
    # 下面这一段是通用的.
    result = Auth.identify(Auth, request)
    print(898989898989, result)

    if not result["status"]:
        return jsonify({"status": 401})
    if result["status"]:
        username2id = result['data']
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])
        print(66666, user.username)
        wenjianjia = user.username

        #
        # wenjianjia = user.username
        #
        #
        # data = request.get_json()
        # print(data)
        # print(data['filename'])
        # print(data['data'])
        # import json
        # with open(r"uploads/"+wenjianjia+r'//'+data['filename']+".json", 'w', encoding='utf-8') as f:
        #     json.dump(data['data'], f, ensure_ascii=False)

        return r'环境保存到服务器额数据库了'
Пример #5
0
    async def process_authorization(request: Request, call_next):
        """
            在这个函数里统一对访问做权限token校验。
            1、如果是用户注册、登陆,那么不做token校验,由路径操作函数具体验证
            2、如果是其他操作,则需要从header或者cookie中取出token信息,解析出内容
               然后对用户身份进行验证,如果用户不存在则直接返回
               如果用户存在则将用户信息附加到request中,这样在后续的路径操作函数中可以直接使用。
        """
        start_time = time.time()

        # print(request.url)
        # print(request.url.path)

        if request.url.path == '/login' or request.url.path == '/register':
            logger.info('no jwt verify.')
        else:
            logger.info('jwt verify.')

            result = Auth.identifyAll(request)
            if result['status'] and result['data']:
                user = result['data']['user']

                logger.info('jwt verify success. user: %s ' % user.username)

                # state中记录用户基本信息
                request.state.user = user
            else:
                return JSONResponse(content=result)

        response = await call_next(request)

        process_time = time.time() - start_time
        response.headers["X-Process-Time"] = str(process_time)
        return response
Пример #6
0
 def get_lease_list():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         limit = int(request.args.get('limit'))
         offset = int(request.args.get('offset'))
         result = udb.find_one({"username": auth['data']})
         if 'lease_history' in result:
             result = result['lease_history'][offset:limit + offset]
         else:
             result = []
         lease_list = []
         for i in result:
             if time.time() > i['end_time']:
                 i['expired'] = True
             else:
                 i['expired'] = False
             lease_list.append(i)
         udb.update_one({"username": auth['data']},
                        {"$set": {
                            "lease_history": result
                        }})
         r = {"lease_list": lease_list, "total": len(result)}
         return jsonify(common.trueReturn(r, 'success'))
     else:
         return auth
Пример #7
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db_wrapper.init_app(app)
    dbcourse_wrapper.init_app(app)
    app.url_map.strict_slashes = False
    config[config_name].init_app(app)

    from app.auth.auths import Auth
    auth = Auth()
    jwt = JWT(app, auth.authenticate, auth.identity)
    #jwt.jwt_error_callback = auth.error_handler

    @app.route('/')
    def index():
        return render_template('index.html')

    from .rest import rest as rest_blueprint
    app.register_blueprint(rest_blueprint, url_prefix='/api/v1')

    #from .auth import auth as auth_blueprint
    #app.register_blueprint(auth_blueprint,url_prefix='/auth')
    """
    from .member import member as member_blueprint
    app.register_blueprint(member_blueprint, url_prefix='/api/v1/members')

    from .student import student as student_blueprint
    app.register_blueprint(student_blueprint, url_prefix='/api/v1/students')
    """

    return app
Пример #8
0
 def get_book_count():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         r = db.find().count()
         return jsonify(common.trueReturn(r, 'success'))
     else:
         return auth
Пример #9
0
    def get():
        """
        获取用户信息
        :return: json
        """
        auth = Auth()
        result = auth.identify(request)

        if (result['status'] and result['data']):
            user = Users.query.filter_by(id=result['data']).first()
            returnUser = {
                'id': user.id,
                'user_name': user.user_name,
                'email': user.email
            }
            result = common.trueReturn(returnUser, "请求成功")
        return jsonify(result)
Пример #10
0
 def book_detail(book_id):
     auth = Auth.identify(Auth, request)
     if auth['status']:
         r = db.find_one({"book_id": book_id}, {"_id": 0})
         Users.add_view_history(auth, r)
         Users.rate_to_book(auth, book_id, 0.1)
         return jsonify(common.trueReturn(r, 'success'))
     else:
         return auth
Пример #11
0
 def login():
     """
     用户登录
     :return: json
     """
     username = request.form.get('username')
     password = request.form.get('password')
     if not username or not password:
         return jsonify(common.resp('', '用户名和密码不能为空', 400))
     else:
         return Auth.authenticate(Auth, username, password)
Пример #12
0
 def get_recommand():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         r = Recommand.gen_matrix(Recommand)
         top_n = Recommand.get_top_n(r, 5)
         result = []
         for i in top_n.get(auth['data']):
             result.append(Book.get_book_by_bookId(i[0]))
         return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #13
0
 def get_map():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         result = db.find_one({"username": auth['data']})
         if 'rate_map' in result:
             return jsonify(common.trueReturn(result['rate_map'],
                                              'success'))
         else:
             return jsonify(common.falseReturn({}, 'false'))
     else:
         pass
Пример #14
0
 def get_view_history():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         limit = int(request.args.get('limit'))
         offset = int(request.args.get('offset'))
         result = db.find_one(
             {"username": auth['data']},
             {"view_history": 1})['view_history'][offset:limit + offset]
         return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #15
0
def token():
    """
    用户登录
    :return: json
    """
    username = request.form.get('username')
    password = request.form.get('password')
    if (not username or not password):
        return jsonify(common.falseReturn('', '用户名和密码不能为空'))
    else:
        return Auth.authenticate(Auth, username, password)
Пример #16
0
 def like_book_list():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         result = db.find_one({"username": auth['data']},
                              {"like_book_list": 1})
         if 'like_book_list' in result:
             return jsonify(
                 common.trueReturn(result['like_book_list'], 'success'))
         else:
             return jsonify(common.trueReturn([], 'success'))
     else:
         return auth
Пример #17
0
 def check_login():
     result = Auth.identify(Auth, request)
     if (result and result['status'] and result['data']):
         user_info = UserAuths.getInfo(result['data'])
         returnUser = {
             'id': result['data'],
             'username': user_info.name,
             'login_time': user_info.login_time
         }
         return jsonify(common.trueReturn(returnUser, "请求成功"))
     else:
         return jsonify(common.falseReturn("", "请求失败"))
Пример #18
0
def upload454666888():
    # 下面这一段是通用的.
    result = Auth.identify(Auth, request)
    print(898989898989, result)

    if not result["status"]:
        return jsonify({"status": 401})
    if result["status"]:
        username2id = result['data']
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])
        print(66666, user.username)
        wenjianjia = user.username

        username2id = result['data']
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])  # result['data'] 表示的是用户id号.
        print(66666, user.username)
        print(66666, user.param1)  # 把所有需要保存的文件名放入param1里面
        print(type(user.param1))
        import json
        a = json.loads((user.param1))  # 通过loads读取json字符串
        print(888888, a)
        fanhui = {}
        print("zonggiongshi j", a)
        for i in a:

            iii = r"uploads/" + user.username + r'/' + i + ".json"
            print(iii)
            with open(iii, encoding='utf-8') as i2:

                import json
                tmp = json.load(i2)
                fanhui[i] = tmp
                print(i)
        print(len(fanhui))
        print(fanhui.keys())
        print(fanhui['古文观止2'])

        #
        # wenjianjia = user.username
        #
        #
        # data = request.get_json()
        # print(data)
        # print(data['filename'])
        # print(data['data'])
        # import json
        # with open(r"uploads/"+wenjianjia+r'//'+data['filename']+".json", 'w', encoding='utf-8') as f:
        #     json.dump(data['data'], f, ensure_ascii=False)

        return jsonify(fanhui)
Пример #19
0
 def lease():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         duration = int(request.json.get('duration'))
         book_name = request.json.get('book_name')
         current_time = int(time.time() * 1000)
         end_time = 2592000000 * duration + current_time
         book_id = Book.get_bookId_by_bookName(book_name)
         book = db.find_one({"book_name": book_name}, {"_id": 0})
         user_info = Users.find_by_username(auth['data'])[0]
         if 'lease_history' in user_info:
             lease_history_list = []
             for i in user_info['lease_history']:
                 if i['end_time'] > current_time and i['valid']:
                     lease_history_list.append(i['book']['book_id'])
                 else:
                     pass
             if book_id in lease_history_list:
                 return jsonify(common.falseReturn('您正在借此书', '失败'))
             else:
                 result = udb.find_one({"username":
                                        auth['data']})['lease_history']
                 book_obj = {
                     "book": book,
                     "lease_time": current_time,
                     "end_time": end_time,
                     "valid": True
                 }
                 result.insert(0, book_obj)
                 udb.update_one({"username": auth['data']},
                                {"$set": {
                                    "lease_history": result
                                }})
                 Users.rate_to_book(auth, book_id, 2)
                 return jsonify(common.trueReturn(result, 'success'))
         else:
             result = []
             book_obj = {
                 "book": book,
                 "lease_time": current_time,
                 "end_time": end_time,
                 "valid": True
             }
             result.append(book_obj)
             udb.update_one({"username": auth['data']},
                            {"$set": {
                                "lease_history": result
                            }})
             Users.rate_to_book(auth, book_id, 2)
             return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #20
0
 def user_detail():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         result = db.find_one({"username": auth['data']}, {"_id": 0})
         if request.method == 'POST':
             return jsonify(common.trueReturn(result, 'success'))
         elif request.method == 'PATCH':
             for i in request.json:
                 if request.json[i]:
                     Users.update_user(auth['data'], i, request.json[i])
         return jsonify(common.trueReturn('1', 'success'))
     else:
         return auth
Пример #21
0
 def login():
     if request.method == 'POST':
         username = request.form.get('username', False)
         password = request.form.get('password', False)
     elif request.method == 'GET':
         username = request.args.get('username', False)
         password = request.args.get('password', False)
     else:
         return jsonify(common.falseReturn('', '请使用POST提交', 103))
     if (not username or not password):
         return jsonify(common.falseReturn('', '用户名和密码不能为空', 102))
     else:
         return Auth.authenticate(Auth, username, password)
Пример #22
0
 def get_book_type():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         r = db.find({}, {"t1": 1, "_id": 0})
         book_cnt = {}
         for i in r:
             if i['t1'] in book_cnt.keys():
                 book_cnt[i['t1']] += 1
             else:
                 book_cnt[i['t1']] = 1
         return jsonify(common.trueReturn(book_cnt, 'success'))
     else:
         return auth
Пример #23
0
 def login():
     username = request.json.get('username')
     password = request.json.get('password')
     if (not username or not password):
         return jsonify(common.falseReturn('', '用户名和密码不能为空'))
     else:
         user_info = Users.find_by_username(username)
         if user_info.count() != 0 and Users.check_password(
                 Users, user_info[0]['password'], password):
             login_tiem = int(time.time())
             token = Auth.authenticate(Auth, username, login_tiem)
             return jsonify(common.trueReturn('成功', token))
         else:
             return jsonify(common.falseReturn('失败', '用户名或密码错误'))
Пример #24
0
def login():
    """
    User Login
    """
    reqParams = request.get_json()
    email = reqParams['email'] if 'email' in reqParams else None
    password = reqParams['password'] if 'password' in reqParams else None

    if (not email or not password):
        return jsonify(
            common.returnFalseMsg('',
                                  'Username and password cannot be empty.'))
    else:
        return Auth.authenticate(Auth, email, password)
Пример #25
0
async def register(request: Request, form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)):
    # 密码加密
    password = Auth.get_password_hash(form_data.password)

    db_user = DBUser.get_by_username(db, form_data.username)
    if db_user:
        return db_user

    db_user = DBUser(username=form_data.username, password=password)
    DBUser.add(db, db_user)

    request.session['test'] = "test"

    return db_user
Пример #26
0
 def get():
     """
     获取用户信息
     :return: json
     """
     result = Auth.identify(Auth, request)
     if result['status'] and result['data']:
         user = Users.get(Users, result['data'])
         return_user = {
             'id': user.id,
             'username': user.username,
             'email': user.email,
             'login_time': user.login_time
         }
         result = common.resp(return_user, "请求成功")
     return jsonify(result)
Пример #27
0
 def back_book():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         book_name = request.json.get('book_name')
         result = udb.find_one({"username": auth['data']}, {
             "_id": 0,
             "lease_history": 1
         })['lease_history']
         for i in result:
             if i['book']['book_name'] == book_name and i['valid']:
                 i['valid'] = False
                 udb.update_one({"username": auth['data']},
                                {"$set": {
                                    "lease_history": result
                                }})
                 return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #28
0
 def user_img():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         result = db.find_one({"username": auth['data']}, {
             "_id": 0,
             "rate_map": 1
         })['rate_map']
         map = {}
         for i in result:
             book = Book.get_book_by_bookId(i)
             body = {"t1": book['t1'], "value": float(result[i])}
             if book['t2'] in map:
                 map[book['t2']]['value'] += body['value']
             else:
                 map[book['t2']] = body
         return jsonify(common.trueReturn(map, 'success'))
     else:
         return auth
Пример #29
0
def upload222222223():
    # 下面这一段是通用的.
    result = Auth.identify(Auth, request)
    print(898989898989, result)

    if not result["status"]:
        return jsonify({"status": 401})
    if result["status"]:
        username2id = result['data']

        beidelete = request.args['delete']  # 获取参数的方法
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])
        print(66666, user.username)
        wenjianjia = user.username

        if not os.path.exists(r"uploads/" + wenjianjia):
            return jsonify([])

        os.remove(r"uploads/" + wenjianjia + '/' + str(beidelete))

        tmp = os.listdir(r"uploads/" + wenjianjia)
        tmp2 = []
        for i in tmp:
            tmp2.append(i.split('.')[-2])
        print(tmp2)

        # name2=request.args['file']  # 获取参数的方法
        # print(111111111111111111111111,name2)
        # 为什么目录跳了一级???
        #  return send_file(r"..\uploads\fuck222.png")
        #  return send_file(r"..\uploads\1.txt")
        # attachment_filename	the filename for the attachment if it differs from the file’s filename.
        # # 可以了,上传下载都可以了
        #         with open(r"uploads/"+wenjianjia+r'/'+name2+".json",encoding='utf-8') as f:
        # #            tmp=json.load(f)
        # print(tmp)
        # print(type(tmp),343434343)
        # tmp2={'data':tmp}
        # # tmp2=jsonify(tmp2)
        # print(9999999999)
        # print(tmp2['data'][0])

        return jsonify(tmp2)
Пример #30
0
def upload4422():

    # 下面这一段是通用的.
    result = Auth.identify(Auth, request)
    print(898989898989, result)

    if not result["status"]:
        return jsonify({"status": 401})
    if result["status"]:
        username2id = result['data']
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])
        print(66666, user.username)
        wenjianjia = user.username + "_juzifenxi"  # 这里规定带有这个后缀的是句子,不带的是篇章

        f = request.files
        #http://www.voidcn.com/article/p-hfxcccsv-btt.html
        print(7777777777777, f)
        print(7777777777777, f.values())
        k = f.getlist('file')
        changdu = len(k)
        print(k)
        num = 0
        for i in k:
            print(i)
            print(type(i))
            # 先获取文件的名字.
            print(1111111111111, i.filename)
            name2 = i.filename.split('.')[-2] + '.json'
            basepath = os.path.dirname(__file__)  # 当前文件所在路径
            upload_path = os.path.join(basepath,
                                       '/uploads')  #注意:没有的文件夹一定要先创建,不然会提示没有该路径
            if not os.path.exists(r"uploads/" + wenjianjia):
                os.mkdir(r"uploads/" + wenjianjia)
            pa34 = r"uploads/" + wenjianjia + r"/" + name2
            # i.save(pa34)   # 带字符串的一定要前面写上r.这样少了很多转义字符,方便多了!!!!!!!!!!!!!11
            pageToSentences(i, pa34)  # 这里面有保存代码
            print("句子解析的结果!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
            print("保存在", pa34)
            print(name2)

        return "成功完成" + str(changdu) + "个文件的句子对齐任务"
    return "bug"
Пример #31
0
 def get_all_book():
     auth = Auth.identify(Auth, request)
     if auth['status']:
         limit = int(request.args.get('limit'))
         offset = int(request.args.get('offset'))
         search = request.args.get('book_name')
         type = request.args.get('book_type')
         if search:
             if type:
                 r = db.find({
                     "book_name": {
                         "$regex": search
                     },
                     "t1": type
                 }, {
                     "_id": 0
                 }).limit(limit).skip(offset)
             else:
                 r = db.find({
                     "book_name": {
                         "$regex": search
                     }
                 }, {
                     "_id": 0
                 }).limit(limit).skip(offset)
         else:
             if type:
                 r = db.find({
                     "t1": type
                 }, {
                     "_id": 0
                 }).limit(limit).skip(offset)
             else:
                 r = db.find({}, {"_id": 0}).limit(limit).skip(offset)
         book_list = []
         cnt = r.count()
         for i in r:
             book_list.append(i)
         result = {'book': book_list, 'total': cnt}
         return jsonify(common.trueReturn(result, 'success'))
     else:
         return auth
Пример #32
0
    def register():
        if request.method == 'POST':
            username = request.form.get('username', False)
            password = request.form.get('password', False)

        elif request.method == 'GET':
            username = request.args.get('username', False)
            password = request.args.get('password', False)

        if not (username and password):
            return jsonify(
                common.falseReturn(
                    '', '用户注册失败, 缺少参数 username=%s, password=%s' %
                    (username, password)))
        # 查询用户名是否存在
        user_id = UserAuths.get_id(username)
        if user_id["is_have"]:
            return jsonify(common.falseReturn('', '用户注册失败,已经存在', 101))

        add_result = UserAuths.add(user_id["user_id"], username, password,
                                   DEFAULT_ROLE)
        if add_result:
            userInfo = UserAuths.getInfo(user_id["user_id"])
            if userInfo:
                login_time = datetime.datetime.now()
                userInfo.login_time = login_time
                userInfo.update_login_time(userInfo.login_time)
                token = Auth.encode_auth_token(
                    userInfo.id, int(time.mktime(login_time.timetuple())))
                if type(token) == bytes:
                    token = str(token)[2:-1]

                returnUser = {
                    'id': userInfo.id,
                    'username': username,
                    'login_time': userInfo.login_time,
                    'token': token
                }
                return jsonify(common.trueReturn(returnUser, "用户注册成功"))

        return jsonify(common.falseReturn('', '用户注册失败', 100))
Пример #33
0
def upload454():
    # 下面这一段是通用的.
    result = Auth.identify(Auth, request)
    print(898989898989, result)

    if not result["status"]:
        return jsonify({"status": 401})
    if result["status"]:
        username2id = result['data']
        # 因为是类函数所以第一个参数传入这个类他自己.
        user = Users.get(Users, result['data'])
        print(66666, user.username)
        wenjianjia = user.username

        data = request.get_json()
        print(data)
        print(data['filename'])
        print(data['data'])
        print(data['page'])

        import json
        # print(json.load(r"uploads/"+wenjianjia+r'/'+data['filename']+".json",ensure_ascii=False))
        print(99999999999999999999999999999)
        with open(r"uploads/" + wenjianjia + r'/' + data['filename'] + ".json",
                  'r',
                  encoding='utf-8') as f:

            # print(f)
            tmp = json.load(f)
            # print(8888888888,tmp)
            # json.dump(data['data'], f, ensure_ascii=False)
            print(999999999333333333333333)
        tmp[data['page'] - 1] = data['data']
        # print(tmp[data['page']])

        with open(r"uploads/" + wenjianjia + r'/' + data['filename'] + ".json",
                  'w',
                  encoding='utf-8') as f:
            json.dump(tmp, f, ensure_ascii=False)

        return r'json保存到服务器了'