분류 전체보기 (100) 썸네일형 리스트형 boto3 로 S3에 파일 업로드 AWS의 라이브러리를 사용하여 S3에 파일 업로드를 도와준다. # boto3 라이브러리 설치 pip install boto3 S3에 저장될 파일 이름 설정 # 클라이언트로부터 파일을 받아온다. file = request.files['photo'] # 파일명을 우리가 변경해 준다. # 파일명은 유니크하게 만들어야 한다. current_time = datetime.now() new_file_name = current_time.isoformat().replace(':','_') + '.jpg' # 유저가 올린 파일의 이름을 내가 만든 파일명으로 변경 file.filename = new_file_name S3에 파일 업로드 # s3에 접근하기 위한 키 설정 s3 = boto3.client('s3', aws_ac.. Flask에서 JWT를 활용한 로그아웃 기능 플라스크에서 jwt 로그아웃 기능 1) 로그아웃 기능을 하는 클래스 생성 ### user.py # 로그아웃 되었는지 확인해줌 # set에 토큰이 있으면 로그아웃한 유저 jwt_blacklist = set() # 로그아웃 기능을 하는 클래스 class UserLogoutResource(Resource) : @jwt_required() def post(self) : # jti : token 구별을 위한 unique id # 헤더 부분에 jti를 가져와 jti = get_jwt()['jti'] print(jti) # jwt_blacklist에 jti 값을 넣어줌 jwt_blacklist.add(jti) return 2) 글을 생성하거나 수정할 때 사용자가 로그아웃되었는지 확인해준다. ### app.py fro.. Flask에서 JWT 사용하는 방법 Flask에서 JWT 사용법 1) 설치 방법 # 라이브러리 설치 $ pip install flask-jwt-extended 2) 회원가입 / 로그인 API에서 토큰 생성해서 처리하는 방법 회원가입 url : '/users/register' 회원가입 클래스 : UserRegisterResource 로그인 url : '/users/login' 로그인 클래스 : UserLoginResource 2-1) 회원가입 : 사용자 이름, 이메일, 비밀번호 입력 유효한 이메일인지 체크하는 라이브러리 사용 # 라이브러리 설치 $ pip install email-validator 회원가입 시, 입력한 비밀번호를 암호화해주는 함수 생성 from passlib.hash import pbkdf2_sha256 # 원문 비밀번호를 .. restful api (URL, Methods, Message) 1) API(Application Programming Interface) 란? 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. API를 통해 소스 및 DB에는 접근하지 못하게 하고 해당 프로그램을 사용할 수 있도록 기능을 제공하게 하는 것이다. 2) REST(Representational State Transfer) 란? 서버나 서비스에 존재하는 모든 자원 (이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용하는 것 3) 통신을 위한 REST 구성 자원(Resource) : http:service.com/users라는 형태의 URI 행위(Method) : GET/POST/DELETE/PUT 과 같은 메소드 표현(Me.. 파일을 training과 test 디렉토리로 나눠서 저장하는 방법 1. !wget 리눅스 명령어를 사용하여 url에서 이미지 데이터셋을 가져온 후, 디렉토리에 저장 !wget --no-check-certificate \ "https://block-edu-test.s3.ap-northeast-2.amazonaws.com/kagglecatsanddogs_5340.zip" \ -O "/tmp/cats-and-dogs.zip" local_zip = '/tmp/cats-and-dogs.zip' zip_ref = zipfile.ZipFile(local_zip, 'r') zip_ref.extractall('/tmp') zip_ref.close() 2. 저장된 이미지 파일을 학습할 데이터와 테스트할 데이터로 나누기 위해 새로운 디렉토리를 만든다. try: os.mkdir('/tmp/.. ImageDataGenerator를 이용해서 데이터 증강하는 방법 ImageDataGenerator 사용법 rescale : 크기 재조절 rotation_range : 이미지 회전값 zoom_range : 이미지 일부 확대 shear_range : 이미지 기울기 width_shift_range : 좌우 이동 height_shift_range : 상하 이동 horizontal_flip : 이미지 가로 뒤집기 vertical_flip : 이미지 세로 뒤집기 from tensorflow.keras.preprocessing.image import ImageDataGenerator ImageDataGenerator(rescale=1/255.0, rotation_range=30, width_shift_range=0.2, height_shift_range=0.2, shear_ran.. JPG나 PNG와 같은 이미지 파일을 학습 데이터로 만드는 방법 학습시킬 데이터는 numpy array 이므로 png / jpg 파일을 바꿔주어야한다. 텐서플로우에서 이미지 파일을 넘파이로 바꿔주는 라이브러리를 제공한다. from tensorflow.keras.preprocessing.image import ImageDataGenerator # 이미지 파일의 범위는 0~255이므로 255로 나누어 0과 1사이의 범위로 만들어준다. train_datagen = ImageDataGenerator(rescale=1/255.0) validation_datagen = ImageDataGenerator(rescale=1/255.0) 변수로 만들어 주고, 이미지가 들어있는 디렉토리의 정보, 이미지 사이즈 정보, 분류할 갯수 정보를 알려줘야한다. # target_size와 앞에서 .. 구글 코랩에서 인터넷에 있는 파일을 다운로드 한 후, 압축 풀기 !wget 리눅스 명령어를 사용하여 인터넷상 파일의 url을 알면 다운받을 수 있다. 예시) 말 / 인간 분류 사진 파일 다운로드 !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/horse-or-human.zip \ -O /tmp/horse-or-human.zip 다운로드 받은 파일은 구글 코랩의 tmp 폴더에 저장되어 있다 이 폴더 안에 zip 파일의 압축을 푸는 방법 import zipfile // 압축을 풀고 싶은 파일의 경로를 입력 zip_ref = zipfile.ZipFile('/tmp/horse-or-human.zip') // 압축풀고 저장할 파일의 경로를 입력 zip_re.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 13 다음