Пример #1
0
def edit_profile():
    request_json = request.get_json()
    username = request_json.get('username')
    name = request_json.get('name')
    phone = request_json.get('phone')
    email = request_json.get('email')
    sex = request_json.get('sex')
    ip_address = flask.request.remote_addr
    print("Yêu cầu: Chỉnh sửa thông tin cá nhân.")
    print("Đã nhận từ: " + ip_address + " ,luc " + str(datetime.now()))
    print("Dữ liệu nhận được: " + "username: "******", name: " + name +
          ", phone: " + phone + ", email: " + email + ", sex: " + sex)
    print(
        "------------------------------------------------------------------------------------------------------------"
    )
    try:
        connect = connection()
        cur = connect.cursor()
        update = "UPDATE person SET name = '%s', phone = '%s', email = '%s', sex = '%s' WHERE  username = '******' " % (
            name, phone, email, sex, username)
        cur.execute(update)
        connect.commit()
        return jsonify({'status': 1})
    except:
        return jsonify({'status': 0, 'result': "Lỗi server!!!"})
Пример #2
0
def sign_up():
    request_json = request.get_json()
    imgBase64 = request_json.get('imgBase64')
    username = request_json.get('username')
    name = request_json.get('name')
    phone = request_json.get('phone')
    email = request_json.get('email')
    sex = request_json.get('sex')
    ip_address = flask.request.remote_addr
    print("Yêu cầu: Đăng kí tài khoản.")
    print("Đã nhận từ: " + ip_address + " ,luc " + str(datetime.now()))
    print("Dữ liệu nhận được: " + "username: "******", name: " + name +
          ", phone: " + phone + ", email: " + email + ", sex: " + sex)
    if imgBase64 is None:
        note = "Loi gui anh, vui long gui lai!"
        return jsonify({'status': 0, 'result': note})
    else:
        try:
            img = base64.b64decode(str(imgBase64))
            img = Image.open(io.BytesIO(img))
            img = cv2.cvtColor(np.array(img), cv2.COLOR_BGR2RGB)
            face = get_face(img)
            note = ""
            if face is None:
                note += "Ảnh đăng kí phải chứa duy nhất một khuôn mặt. Vui lòng kiểm tra lại!"
            if note != "":
                return jsonify({'status': 0, 'result': note})
            else:
                face_emberding = get_emberding(face)
                face_str = ""
                for i in range(len(face_emberding)):
                    face_str += str(face_emberding[i]) + " "
                connect = connection()
                cur = connect.cursor()
                select = " SELECT * FROM person WHERE username = '******' " % (
                    username)
                cur.execute(select)
                data = cur.fetchall()
                if (len(data) > 0):
                    note = "Tên đăng nhập đã tồn tại!!!"
                    return jsonify({'status': 0, 'result': note})
                else:
                    insert = "INSERT INTO person VALUES('%s', '%s', '%s', '%s', '%s', '%s','%s') " % (
                        username, name, phone, email, sex, face_str,
                        str(imgBase64))
                    cur.execute(insert)
                    connect.commit()

                return jsonify({'status': 1})
        except Exception as e:
            print("Error: ", e)
            note = "Lỗi xử lí!"
            return jsonify({'status': 0, 'result': note})
Пример #3
0
def change_face():
    request_json = request.get_json()
    imgBase64 = request_json.get('imgBase64')
    username = request_json.get('username')
    ip_address = flask.request.remote_addr
    print("Yêu cầu: Thay đổi khuôn mặt đăng nhập.")
    print("Đã nhận từ: " + ip_address + " ,luc " + str(datetime.now()))
    print("Dữ liệu nhận được: " + "username: "******"------------------------------------------------------------------------------------------------------------"
    )
    if imgBase64 is None:
        note = "Loi gui anh, vui long gui lai!"
        return jsonify({'status': 0, 'result': note})
    else:
        try:
            img = base64.b64decode(str(imgBase64))
            img = Image.open(io.BytesIO(img))
            img = cv2.cvtColor(np.array(img), cv2.COLOR_BGR2RGB)
            face = get_face(img)
            note = ""
            if face is None:
                note += "Ảnh cập nhật phải chứa duy nhất một khuôn mặt. Vui lòng kiểm tra lại!"
            if note != "":
                return jsonify({'status': 0, 'result': note})
            else:
                face_emberding = get_emberding(face)
                face_str = ""
                for i in range(len(face_emberding)):
                    face_str += str(face_emberding[i]) + " "

                connect = connection()
                cur = connect.cursor()
                update = "UPDATE person SET face_emberding = '%s',face_base64 = '%s' WHERE  username = '******' " % (
                    face_str, str(imgBase64), username)

                cur.execute(update)
                connect.commit()

                return jsonify({'status': 1})
        except Exception as e:
            print("Error: ", e)
            note = "Lỗi xử lí!"
            return jsonify({'status': 0, 'result': note})
Пример #4
0
def return_profile():
    request_json = request.get_json()
    username = request_json.get('username')
    ip_address = flask.request.remote_addr
    print("Yêu cầu: Lấy thông tin cá nhân.")
    print("Đã nhận từ: " + ip_address + " ,luc " + str(datetime.now()))
    print("Dữ liệu nhận được: " + "username: "******"-----------------------------------------------------------------------------------------------------------"
    )
    try:
        connect = connection()
        cur = connect.cursor()
        select = " SELECT * FROM person WHERE username = '******' " % (username)
        cur.execute(select)
        data = cur.fetchall()

        for row in data:  # lay thong tin user
            username = row[0]
            name = row[1]
            phone = row[2]
            email = row[3]
            sex = row[4]
            face_base64 = row[6]
        return jsonify({
            'status': 1,
            'username': username,
            'name': name,
            'phone': phone,
            'email': email,
            'sex': sex,
            'face_base64': face_base64
        })
    except Exception as e:
        print("Error: ", e)
        note = "Lỗi xử lí!"
        return jsonify({'status': 0, 'result': note})
Пример #5
0
def login():
    request_json = request.get_json()
    imgBase64 = request_json.get('imgBase64')
    # print(len(imgBase64))
    username = request_json.get('username')
    ip_address = flask.request.remote_addr
    print("Yêu cầu: Đăng nhập.")
    print("Đã nhận từ: " + ip_address + " ,luc " + str(datetime.now()))
    print("Dữ liệu nhận được: " + "username: "******"------------------------------------------------------------------------------------------------------------"
    )
    if imgBase64 is None:
        note = "Loi gui anh, vui long gui lai!"
        return jsonify({'status': 0, 'result': note})
    else:
        try:
            connect = connection()
            cur = connect.cursor()
            select = " SELECT * FROM person WHERE username = '******' " % (
                username)
            cur.execute(select)
            data = cur.fetchall()
            if (len(data) == 0):  # kiem tra ten dang nhap
                note = "Tên đăng nhập không tồn tại!!!"
                return jsonify({'status': 0, 'result': note})
            else:
                for row in data:  # lay thong tin user
                    username = row[0]
                    name = row[1]
                    phone = row[2]
                    email = row[3]
                    sex = row[4]
                    face_str = row[5]
                    face_base64 = row[6]
                face_str = face_str.strip()
                face_str = face_str.split(" ")
                face_signup = np.array(face_str, dtype=float)
                # Kiem tra thong tin khuon mat dang nhap
                img = base64.b64decode(str(imgBase64))
                img = Image.open(io.BytesIO(img))
                img = cv2.cvtColor(np.array(img), cv2.COLOR_BGR2RGB)
                face = get_face(img)
                note = ""
                if face is None:
                    note += "Ảnh đăng nhập phải chứa duy nhất một khuôn mặt. Vui lòng kiểm tra lại!"
                    return jsonify({'status': 0, 'result': note})
                else:
                    face_login = get_emberding(face)
                    sim = np.dot(face_signup, face_login) / (
                        norm(face_signup) * norm(face_login))
                    print("Độ tương đồng giữa 2 khuôn mặt là: ", sim)
                    if (sim > 0.5):
                        return jsonify({
                            'status': 1,
                            'username': username,
                            'name': name,
                            'phone': phone,
                            'email': email,
                            'sex': sex,
                            'face_base64': face_base64
                        })
                    else:
                        note = "Khuôn mặt không khớp với tên đăng nhập, bạn vui lòng kiểm tra lại!"
                        return jsonify({'status': 0, 'result': note})
        except Exception as e:
            print("Error: ", e)
            note = "Lỗi xử lí!"
            return jsonify({'status': 0, 'result': note})