✍ Today I Learned
2022.10.29 - [TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded
- 웹개발 종합반 1주차 ~ 2주차 강의에 이어 3주차 ~ 4주차 강의를 듣고 정리한 내용이다.
- 사용 경험이 적은 언어(Python)와 데이터베이스(MongoDB)였지만 내가 알고 있는 것들과 비교해보는 재미가 있었다!
특정 문자열 대체, 제거 replace()
string.replace(oldvalue, newvalue, count)
- 차례대로 찾을 값, 바꿀 값, 바꿀 횟수(옵션)를 입력하면 해당 string에서 특정 문자열을 대체한다.
문자열 및 공백 제거 strip()
string.strip(characters)
- 인자로 전달받은 문자를 String의 왼쪽과 오른쪽에서 제거한다.
- 인자를 전달하지 않으면 공백을 제거한다.
- 인자로 문자 1개를 전달하면 그 문자와 동일하지 않은 문자가 나올 때까지 제거한다.
- 인자로 여러 문자를 전달하면 그 문자들과 동일한 것들을 모두 제거한다.
MongoDB Atlas란?
- MongoDB Atlas는 MongoDB를 설계한 사람들이 만든 모든 것을 관리하는 클라우드 데이터베이스이다.
- 클라우드 3사(AWS, Azure, GCP)에서 다 사용 가능하다.
- 유저가 몰리거나, DB를 백업해야 하거나, 모니터링 하기가 아주 용이하기 때문에 사용한다.
pymongo 역정렬 sort()
db.col.find().sort('UserName', 1) # 오름차순
db.col.find().sort('UserName', -1) # 내림차순
- 매개변수로 key를 지정하여 데이터를 정렬한다.
- 두 번째 매개변수를 생략하거나 1은 오름차순, -1은 내림차순이다.
- 데이터를 최신순으로 불러오고 싶을 때는 id key를 기준으로 역정렬을 한다.
MongoDB에 id 부여하기
시퀀스가 없다구요?
- 버킷리스트를 구현 중, 하나하나의 완료 여부를 업데이트하려고 보니 각 데이터에 id 값이 필요했다.
- MongoDB는 MySQL의 Auto-increment 같은 시퀀스를 따로 지원하지 않는다.
- 따라서 DB 데이터를 list로 불러와 list 요소의 개수를 구하고 + 1 한 값을 id로 넣어준다.
count = list(db.bucket.find({},{'_id':False}))
num = len(count) + 1
list의 요소 개수 구하기 len()
len( "abc" )
print(len) # 3
len( [ 11, 22, 33, 44, 55, 66 ] )
print(len) # 6
- 문자열에서는 문자열의 길이를 반환한다.
- list에서는 요소의 개수를 반환한다.
문자열을 숫자로 변환하기 int()
num_str = '10'
print(num_str) # 10
print(type(num_str)) # <class 'str'>
num = int(num_str)
print(num) # 10
print(type(num)) # <class 'int'>
- 인자로 전달된 문자열을 Integer로 변환한다.
- 서버로 숫자를 넘겨주어도 JSON은 무조건 String으로 전달되기 때문에 클라이언트에서 보내준 id값을 서버에서 사용하려면 int로 변환해주어야 한다.
@app.route("/bucket/done", methods=["POST"])
def bucket_done():
num_receive = request.form["num_give"]
db.bucket.update_one({'num': int(num_receive)}, {'$set': {'done': 1}})
return jsonify({'msg': '버킷 완료!'})
'📝 TIL' 카테고리의 다른 글
[TIL] Java 연산자의 종류, 우선순위, 타입 변환 (2) | 2022.11.08 |
---|---|
[TIL] Java 개발 환경 구축, 변수와 타입 (0) | 2022.11.07 |
[TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded (0) | 2022.10.29 |
[TIL] 알고리즘 구간 합 (1) | 2022.10.01 |
[TIL] 알고리즘 배열과 리스트(Java) (0) | 2022.09.29 |