Young's Today
2022-11-15. TIL 본문
** 공부 내용
아이디/닉네임 중복확인 API 코드
- HTML <body> 부분
- function을 사용하기 전에 호출을 어디서 해줄 것인지는 버튼에 onclick="idcheck()"로 지정해둠
<div class="form-floating mb-3">
<input type="email" class="form-control" id="floatingInput" placeholder="name">
<label for="floatingInput" id="userid">ID</label>
<button onclick="idcheck()" type="button" class="btn_idcheck">중복확인</button>
</div>
- HTML <script> 부분
- POST 타입, URL은 mongoDB에 저장할 위치, data는 idcheck에 입력된 값을 받아서 사용
- response가 success라면 사용가능 알럿, success가 아니라면 중복 알럿
function idcheck() {
$.ajax({
type: "POST",
url: "/api/register",
data: {id_give: idcheck.value()},
success: function (response) {
if (response['result'] == 'success') {
alert('아이디 사용이 가능합니다.')
} else {
alert('아이디가 중복됩니다.')
return;
}
}
})
}
- Python 부분
- 동일하게 POST 방식 사용, idcheck() 함수 사용
- ajax에서 id_give 폼을 리퀘스트 하는 것을 id_receive로 지정
- result는 데이터베이스의 user 에서 id가 존재하는지 확인
- result가 없다면 success로 jsonify return
- result가 있다면 fail로 jsonify return
@app.route('/api/register', methods=['POST'])
def idcheck():
id_receive = request.form['id_give']
result = db.user.find_one({'id': id_receive})
if result is None:
return jsonify({'result': 'success'})
else:
return jsonify({'result': 'fail'})
** 느낀 점
- 작성까지 굉장히 오랜 시간이 걸렸다. 구글링해서 이것저것 찾아서 트라이 해보았다.
- 내가 처음 작성했을 때 if result is not None: 이라고 작성을 했는데, 다시 생각해보니 사소한 실수였다.
- 오래 걸렸고 팀원이 찾아준 문제였지만 해결하고나니 속이 시원하다!
- 한 가지 문제가 풀리지 않을 때는 10분 정도 휴식했다가 다시 보는 것을 권장한다.
- 내가 어디서부터 무엇을 시도해보았는지도 정리하고, 새로운 시각으로 볼 수 있게 된다.
** 잘한 점
- 연구직할 때만 구글링 능력이 발휘되는건 줄 알았는데 그 능력을 응용할 수 있어서 좋았다.
- 끝까지 해결하기 위해 노력했다. 모르면 구글링 그래도 모르면 질문하고 반복반복
** 못한 점
- 잠시 쉬었다 했으면 미처 놓쳤던 부분을 더 빨리 찾아낼 수 있었을거라는 생각이 든다.
'TW I Learnd' 카테고리의 다른 글
2022-11-17. TIL (0) | 2022.11.17 |
---|---|
2022-11-16. TIL (0) | 2022.11.16 |
2022-11-14. TIL (0) | 2022.11.14 |
2022-11-13. WIL (0) | 2022.11.14 |
2022-11-12. TIL (0) | 2022.11.12 |