* 서버/클라이언트 만들기 복습
* 참고( ".sort" : 데이터베이스에있는 데이터를 가져올때 오름차순/내림차순으로 정렬해서 가져옴)
movie_star = list(db.mystar.find({},{'_id':False})).sort('like', -1)
('like'키값의 데이터를 내림차순으로 정렬)
* POST요청
- 서버
@app.route('/api/like', methods=['POST'])
def like_star():
name_receive = request.form['name_give']
#name_give로 name값을 받아온다음 name_receive에 저장
target_star = db.mystar.find_one({'name': name_receive})
#name_receive에 저장되어있는 name을 'name'데이터베이스에서 찾아서 찾은'한줄'을 target_star에 저장
current_like = target_star['like']
#target_star에 저장된 줄에서 like 값을 찾아 current_like에 저장
new_like = current_like + 1
db.mystar.update_one({'name': name_receive}, {'$set': {'like': new_like}})
#name_receive에 해당하는 이름의 like 값을 new_like로 업데이트
return jsonify({'msg': '좋아요 완료'})
- 클라이언트
function likeStar(name) {
$.ajax({
type: 'POST',
url: '/api/like',
data: {name_give:name}, #name값을 name_give로 서버에 넘겨준다
success: function (response) {
alert(response['msg']);
window.location.reload()
}
});
}
클라이언트 db.mystar.update_one의 update 부분에 mystar를 쓰는바람에 구동이 안되서
몇시간동안이나 어디 틀렸는지 헤맸다
후... 괄호하나 언더바 하나 스펠링하나도 빠짐없이 잘 확인하자......... ㅡㅡ^
* 내프로젝트를 서버에 올리기
- AWS 라는 클라우드 서비스에서 편하게 서버를 관리하기 위해서 항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용할 예정
(1년까지만 무료 22.12.13 / 인스턴스 종료 누르면 반납 가능)
- 구입한 서버컴퓨터 원격 접속
-> git bash(Windows 운영체제에서도 리눅스 커맨드(명령프롬프트)를 사용할수있게 만든 프로그램) 활용
$ ssh -i (AWS키페어붙이기) ubuntu(=폴더명)@(AWS 퍼블릭 IPv4 주소)
Filezilla : 내 컴퓨터에 있는 파일을 (구입한)서버컴퓨터에 업로드/다운로드 하는 프로그램
filezilla에서 파일을 서버컴퓨터에 업로드 후 git bash에서 확인 할 때 명령어 : python (파일명)
파이참에서처럼 라이브러리(flask, bs4)등을 git bash에서 설치하는 명령어 : pip install (라이브러리명)
(pip - 파이썬의 패키지를 쉽게 설치할 수 있도록 도와주는 라이브러리)
*참고
모듈 : 파이썬 소스코드 파일(.py)
패키지 : 기능적으로 동일하거나 동일한 결과를 만들어 낼 수 있는 모듈의 집합
라이브러리 : 모듈, 패키지를 포함한 넓은 개념
* 원리
AWS에서 서버컴퓨터를 만들고
→ filezilla에서 파일을 업로드 시킬수 있고
→ git bash 에서 명령어를 입력해 서버컴퓨터에 있는 파일을 동작 시킬수 있고
(git bash명령어 : ls(파일확인), python 파일명(동작), exit(종료) -단축키 ctrl + c)
→ AWS에서 포트를 열어 브라우저에서 "IP주소:포트주소""를 입력하면 해당 파일로 만든 페이지에 접속 가능
(포트주소를 제외 하려면 포트포워딩을 통해 80포트로 변경-git bash 세팅시 설정)
→ git bash를 종료하면 서버가 끊기는데 이를 해결하려면
명령어 nohup python app.py & 로 컴퓨터를 종료해도 서버를 돌릴 수 있음
→ 다시 서버를 종료 하려면 ps -ef | grep 'app.py' 를 입력 후 kill -9 [pid값] 을 입력하면 종료 됨
(업데이트 시 종료하고 filezilla에서 파일을 업로드 후 다시 서버구동)
→ gabia에서 구입한 도메인을 DNS관리툴에서 서버컴퓨터의 IP와 연결하면 도메인으로 내 웹페이지에 접속가능(시간 조금 걸릴 수 있음)
* Port 참고
→ 80포트: HTTP 접속을 위한 기본포트(생략해도 접속가능)
→ 5000포트: flask 기본포트
→ 27017포트: 외부에서 mongoDB 접속을 하기위한 포트
*포트 포워딩 : 80포트로 들어온 요청을 5000포트로 전달해서 출력(port를 forwarding 한다)
'코딩수강일지 > 팀스파르타 웹개발 종합반 수업일지' 카테고리의 다른 글
웹개발 종합반 4주차 수강일지 (0) | 2021.12.19 |
---|---|
웹개발 종합반 3주차 수강일지 (0) | 2021.12.19 |
웹개발 종합반 2주차 수강일지 (0) | 2021.12.18 |
웹개발 종합반 1주차 수강일지 (0) | 2021.12.18 |