일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 데이터베이스
- 자바프로그래밍
- 판다스공부
- Matplotlib 기초
- 자바초보
- 자바스크립트
- Streamlit기초
- 자바공부
- serverless
- java
- JavaScript
- 스트림릿
- 자바스크립트 공부
- 스트림릿 기본
- RESTful API
- 자바기초
- 판다스
- 안드로이드 스튜디오
- 웹대시보드 기초
- db
- 파이썬
- Streamlit기본
- 웹대시보드 제작
- 자바초보공부
- Pandas
- 파이썬공부
- streamlit
- 자바
- 판다스데이터프레임
- MySQL
- Today
- Total
목록전체 글 (225)
ruriruriya
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dNQig0/btsBeVvJJpi/K4ne9Igg17pFRw5yaGWkW1/img.jpg)
MySQL에서 테이블을 파일로 저장하는 방법을 알아보자. 1. Table Data Export Wizard 스키마 영역에서 테이블에 마우스를 대고 오른쪽 마우스를 클릭하면 Table Data Export Wizard 선택한다. 2. 저장할 컬럼 선택 컬럼 선택 후 Next를 클릭 3. 파일 형태 선택 파일 형태 선택 후 저장 위치를 선택한다.
TypeError: Object of type Decimal is not JSON serializable 에러 해결 RESTful API 만들 때 GET 방식의 API 함수에서 '데이터 타입 직렬화'라는 에러가 났다. 원인 그래서 MySQL에서 소수점을 JSON으로 가져오지 못할 때 나는 에러라고 다른 블로그에서 봤다. 그래서 그 소수점 있는 컬럼을 제외하고 다시 해보니 동작했다. 해결방법 01 해결방법은 성공 시 리턴할 때 items의 결과 값을 str로 한번 씌우는 것으로 해결이 되었다.... 좋은 해결방법인지는 잘 모르겠다. return {'result' : 'success', 'items':str(result_list), 'count': len(result_list)}, 200 해결방법 02 다른..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ckdPmb/btsBQYFoYob/2rQB3mksAIir9UkkukDMF1/img.png)
ValueError: invalid base64 input 에러 해결 MySQL에서 connector로 데이터를 json으로 가져와서 JWT를 활용해서 회원가입 후 로그인할 때 이런 에러가 났다. 원인 MySQL 에서 user 테이블의 password 컬럼 설정 시 문자열 길이를 짧게 해서 jwt로 암호화된 password가 잘려서 들어갔던 것 같다.. 그래서 계속 유저가 입력한 비밀번호와, DB에 저장된 비밀번호가 일치하지 않아서 난 에러였다. 해결방법 MySQL로 돌아가서 RDS에 저장되어 있는 데이터베이스의 user 테이블의 password 컬럼 설정에서 VARCHAR(45)로 되어 있는 것을 VARCHAR(300)으로 넉넉히 바꾸어 적용했다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbLg5C/btsB0gLmq24/qXw5Ft9g4xUdlai6HI4HLk/img.jpg)
JWT란 JSON Web Token의 약자로, JSON포맷으로 구성된 경량의 토큰으로, 정보를 안전하게 전달하기 위해 사용된다. JWT는 클라이언트와 서버 간의 정보를 주고받을 때 사용자의 인증과 관련된 정보를 토큰으로 안전하게 전송하고 그 토큰으로 로그인 상태를 유지하는 등에 쓰인다. JWT의 장점 토큰 자체에 정보를 담고 있어서 서버에 따로 상태를 유지할 필요가 없다. 토큰을 사용하여 토큰이 변조되지 않았음을 쉽게 확인할 수 있다. 회원가입 API에서 JWT 토큰 발급 1. 사용자 정보 입력 사용자가 회원가입 양식을 작성하고 필요한 정보를 입력 from flask import request from flask_jwt_extended import create_access_token from flask_..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vczNU/btsBOhKXoEz/FB0nDZEKwOuLZB4IoW1Dv0/img.jpg)
1. npm 설치 별다른 설정 없이 Next 만을 누르며 설치를 완료한다. https://nodejs.org/en/download Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. Serverless 프레임워크 설치 cmd 창에서 서버리스 아래 명령어로 프레임워크를 설치한다. $ npm install -g serverless
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cNgEP1/btsBUc5binK/uw0PpNnoHEPdOM6G97Kpd1/img.jpg)
1. RESTful API Flask에 JWT 설치하는 방법 해당 가상환경에서 아래 명령어로 설치한다. pip install Flask-JWT-Extended 2. Config.py 파일 변수 세팅 설치 후에 Config.py 파일에서 JWT관련 변수를 세팅한다. * Config는 설정(configuration)을 의미하며, 프로그램이나 시스템의 동작을 제어하기 위해 사용되는 값들의 집합이다. 이 설정들은 소프트웨어나 하드웨어의 특정 기능이나 동작을 조정하거나 사용자의 요구에 맞게 조절할 수 있도록 도와준다. class Config : ### JWT 관련 변수 세팅 JWT_SECRET_KEY = 'helloskkels##fffssfs' JWT_ACCESS_TOKEN_EXPIRES = False PROPA..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bucmHb/btsBUzFudL4/4jsXs92toKne5StYWr1IYK/img.jpg)
API 리소스 클래스에서 함수를 만들고 쿼리문을 넣을 때 쿼리문의 컬럼 매칭 %s가 1개라면 record에서 튜플에서 1개만 작성하게 된다. 여기서 주의 할 점은 튜플 1개일 때 뒤에 콤마(,)를 붙여주지 않으면 튜플 괄호가 없어지니 반드시 콤마(,) 붙여주는 것이다. 콤마(,)가 없어도 실행은 되지만 에러코드는 보여주지 않아 에러가 아닌 버그가 된다. 이렇게 튜플의 특성을 파악하고 확인하여 버그를 방지 하자. record =(recipe_id, ) from flask import request from flask_restful import Resource from mysql_connection import get_connection from mysql.connector import Error class..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kw2dd/btsBYtEwAvu/5Ks84yEjg9FG55kf5kb4X0/img.jpg)
경로에 숫자가 들어가 계속 변하는 경우라면 경로에 변수 처리를 해줘야 한다. 숫자가 들어가는 경로에 이렇게 입력하면 되는데 숫자니까 이렇게 쓰면 클라이언트가 숫자를 바꿔 입력할 때마다 값을 다르게 가져올 수 있다. from flask import Flask from flask_jwt_extended import JWTManager from flask_restful import Api # 기본 구조 app = Flask(__name__) api = Api(app) # 경로(path)와 리소스(API 코드)를 연결한다. api.add_resource(RecipeListResource,'/recipes') api.add_resource(RecipeResource,'/recipes/') # /recipes/레시..