📝Query String 페이징 처리하기
포스트맨에서 Query String할 키와 밸류값을 Query Params에 입력한다
( http://localhost:5000/follow/memo?offset=0&limit=2 이대로 입력해도 자동으로 입력된다 )
offset 밸류값을 0, limit 밸류값을 2로 넣고 실행시키면 해당 데이터를 2개 끊어서 가져온다
코드를 작성할때 클라이언트에서 쿼리스트링으로 보내는 데이터는 request.args에 들어있다
변수로 저장해서 쿼리문에 사용하기
※ 주의할점 MySQL Workbench 쿼리문 작성할때 컬럼은 n이다에만 %s 사용하고 그외는 변수를 더해준다
class MemoListResource(Resource) :
@jwt_required()
def get(self) :
user_id = get_jwt_identity()
# 클라이언트에서 쿼리스트링으로 보내는 데이터는 request.args에 들어있다
offset = request.args.get('offset')
limit = request.args.get('limit')
try :
connection = get_connection()
query = '''select id, title, datetime, content, createdAt, updatedAt
from memo
where userId= %s
order by datetime desc
limit ''' + offset + ''' , ''' + limit + ''' ; '''
# 컬럼은 ~다에만 %s 사용
record = (user_id, )
cursor = connection.cursor(dictionary= True)
cursor.execute(query, record)
result_list = cursor.fetchall()
i = 0
for row in result_list :
result_list[i]['datetime'] = row['datetime'].isoformat()
result_list[i]['createdAt'] = row['createdAt'].isoformat()
result_list[i]['updatedAt'] = row['updatedAt'].isoformat()
i = i + 1
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return {"error" : str(e)}, 500
return {"result" : "success", "items" : result_list, "count" : len(result_list)}, 200
'Restful API' 카테고리의 다른 글
[Restful API] DB에 저장된 정보를 가져와서 작업한 후에 추천하는 API 만들기 (0) | 2023.01.09 |
---|---|
[Error] Object of type Decimal is not JSON serializable (0) | 2023.01.09 |
[Restful API] Flask에서 JWT 사용하기 (로그인/로그아웃 API 만들기) (0) | 2023.01.05 |
[Restful API] Flask에서 JWT 사용하기 (회원가입 API 만들기) (0) | 2023.01.05 |
[Restful API] pbkdf2_sha256으로 비밀번호 암호화시키기 (0) | 2023.01.04 |
댓글