이번에는 유저 요청에따라 동적으로 데이터를 리턴해주려고한다.
이를 위해, DBMS를 설치해 데이터를 저장하고, 조건에 맞는 Value 값을 찾아서 회신할 것이다.
1) My sql 설치
sudo apt-get update
sudo apt-get install mysql-server
※ 방화벽 설정이 되어있다면, Mysql 포트를 열어주어야 한다. ( 3306 )
sudo ufw allow mysql
ㅁ 실행 및 DBMS 접속
service mysql service
mysql -u root -p
ㅁ 데이터베이스 및 유저생성
Mysql> CREATE DATABASE USER;
Mysql> CREATE USER 'pyadm'@'localhost' IDENTIFIED BY 'password';
ㅁ 권한 부여 및 확인
Mysql> GRANT ALL PRIVILEGES ON USER.* to pyadm@localhost;
Mysql> grant all privileges on *.* to 'pyadm'@'localhost';
root> mysql -u pyadm -ppassword
2) 데이터 구성
ㅁ ID를 KEY 값으로, 이름을 필드로 갖는 user_info 테이블 생성
CREATE table user_info( id int(10) NOT NULL, name char(20) DEFAULT NULL, PRIMARY KEY (id) );
ㅁ 테스트 데이터 입력
INSERT INTO user_info VALUES(1234,'kim');
INSERT INTO user_info VALUES(123,'Lee');
commit;
3) Python - Mysql 연결
pip3 iinstall --proxy [proxy_ip] --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org PyMysql
ㅁ 테스트 코드 작성 ( 커넥터 설정 및 커서 )
import pymysql
user_db = pymysql.connect (
user='pyadm',
passwd='password',
host='localhost',
db='user',
)
cursor = user_db.cursor()
sql= " select * from user_info"
cursor.execute(sql)
print(cursor.fetchall())
4) request 에서 조건값 가져오기
http://localhost:80/api/users/1234
ㅁ Rest_api 서버 코드 수정
@api.route('/api/users/<int:id>') -- id라는 변수를 만들어 int 값 저장
class HelloWorld(Resource):
def get(self,id): -- 멤버 변수 파라미터로 id 설정
return {"id": id, -- id 변수값
"name": "kim"}
5) 가져온 조건값을 DB에 입력하여, 리턴해주도록 수정
@api.route('/api/users/<int:id>')
class HelloWorld(Resource):
def get(self,id):
cursor = user_db.cursor()
sql = " select * from user_info where id= " + str(id)
cursor.execute(sql)
data=cursor.fetchall()
return {"id": data[0][0],
"name": data[0][1]}
'IT > 도커도커' 카테고리의 다른 글
(6-2) 도커 內 Rest Api 서버 구성하기 ( Nginx ) (0) | 2021.08.20 |
---|---|
(6-1) 도커 內 Rest Api 서버 구성하기 ( Python ) (0) | 2021.08.11 |
(5) 도커 Hello World - 웹페이지 (0) | 2021.07.22 |
(4) 도커 Hello World (1) | 2021.07.20 |
(3) 도커 명령어 (0) | 2021.07.19 |