ajax에서 request 요청 시 데이터를 http request body에 저장하여 보내는 방법
하나씩 일일이 보내는 방법
let id = $('#id').val()
let pwd = $('#pwd').val()
$.ajax ({
type: 'POST',
url: '/',
data: {'id_give' : id, 'pwd_give': pwd}
suceess : ....
})
dic 형태(json형태)로 보내는 방법
let data = {
'id' = $('#id').val(),
'pwd' = $('#pwd').val()
}
$.ajax({
type: 'POST',
url: '/',
data: JSON.stingify(data),
contentType: "application/json; charset=utf-8",
success : ....
})
이후 app.py 에서 실행될 함수에서 http body 에 저장된 값을 불러오기 위해서
data = json.loads(request.data) 로 가져오고
data.get() 함수를 이용하여 데이터를 가져와서 가공하거나 dic 생성하여 값들을 한번에 저장하여 DB에 insert 하는 방식
@app.route("/api/join", methods=["POST"])
def api_join():
data = json.loads(request.data)
pw = data.get('pwd',None)
# 입력받은 패스워드 값 해싱하여 암호화
hashed_pw = hashlib.sha256(pwd_receive.encode('utf-8')).hexdigest()
doc = {
'id': data.get('id',None),
'pwd': hashed_pw
}
db.USER.insert_one(doc)
return jsonify({'result': 'success', 'msg': '회원 가입 완료'})
매직 메서드
매직 메서드는 파이썬에서 미리 만들어 놓은 메서드이고 여러가지가 있는데 그 중에서 자주 사용되는 것들이 __init__ __call__ 메서드가 대표적이다. 자바에서 생성자를 만드는 것과 같다고 생각하면된다.
클래스를 정의한 뒤 생성자를 호출할 때 즉, 인스턴스를 생성할 때 실행 될 코드를 추가하고 싶으면 __init__ 매직메서드를 정의하고 그 안에 코드를 작성하면 된다. __call__ 메서드는 해당하는 인스턴스가 호출될 때 실행 될 코드를 추가할 때 쓸 수 있는 메서드다.
class Animal():
def __init__(self):
print('인스턴스가 생성될 때 실행되는 코드')
def __call__(self, *args, **kwargs):
print('인스턴스가 실행될 때 실행되는 코드')
animal = Animal() #인스턴스 생성
animal() #인스턴스 호출
#인스턴스가 생성될 때 실행되는 코드
#인스턴스가 실행될 때 실행되는 코드
list 빼기 함수
a_list = [1, 2, 3, 4, 5, 6]
b_list = [2, 4, 6]
result_list = set(a_list) - set(b_list)
# >> [1, 3, 5]
result_list.remove(1) # 1삭제
# >> [3, 5]
파이썬 리스트 랜덤 추출
1. import random
2. 1개만 추출하기
a_list = [1, 2, 3]
result = random.choice(a_list)
3. 다수 랜덤 추출 (중복 안됨) 단, 추출하려는 인자 수가 인덱스의 수 보다 높게 되면 오류가 발생됨!
a_list = [1, 2, 3]
result = random.sample(a_list, 2)
>> 리스트에서 중복 허용하지 않으면서 값 2개 추출
4. 다수 랜덤 추출 (중복 가능)
a_list = [1, 2, 3]
result = [random.choice(a_list) for i in range(3)]
>> 리스트에서 중복 허용하면서 값 3개 추출
'회고록(TIL&WIL)' 카테고리의 다른 글
TIL 2022.05.11 클론코딩 팀프로젝트(BE) - 6 (프로젝트 종료, KPT, 소감, 피드백) (1) | 2022.05.11 |
---|---|
TIL 2022.05.09 클론코딩 팀프로젝트(BE) - 5 (친구 추천 리스트, 팔로우/언팔로우) (1) | 2022.05.09 |
TIL 2022.05.06 클론코딩 팀프로젝트(BE) - 3 (중간점검, 중복확인, 입력값 확인, 타임어택) (0) | 2022.05.06 |
TIL 2022.05.04 클론코딩 팀프로젝트(BE) - 2 (회원가입, 정규표현식, 로그인, 로그아웃) (0) | 2022.05.04 |
TIL 2022.05.03 클론코딩 팀프로젝트(BE) - 1 (hashlib, JWT, git) (0) | 2022.05.03 |