일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 항해99
- 필수강의
- 7기
- 멍친구
- 달리기반
- 팀워크최고
- Expo
- 챗GPT
- TDD
- 맥린이
- ReactNative
- ChatGPT
- 스파르타코딩클럽
- TS
- REACT
- NotionAI
- rn
- D반8조
- 코린이
- 알고리즘기초주차
- Programmers
- typeScript
- 프로그래머스
- 리액트
- 알pdf #파일탐색기미리보기안될때
- 실전프로젝트
- 웹개발종합반
- Ai
- 프론트엔드
- 사전준비
- Today
- Total
FrontEnd :-)
[항해99] 사전준비-5 Flask, AWS, 도메인 본문
웹종합개발반 2회 완강! 입학시험 남았다. 내일은 총정리 복습!
HTML > CSS > Bootstrap > Javascript >JQuery > API/Ajax > Python > Crawling > mongoDB > Flask(post,get) > 서버/AWS
배운 점:
Flask 기초(연습{버킷리스트}), AWS 서버 세팅, 도메인 연결, og 태그(아래 테이블)
어려운 점:
5주 차 버킷리스트 만들기는 어렵다. Get 방식 index.html에서 ajax에 조건문 함수 삽입, Post 방식 app.py에서 count 설정이나, 문자열을 숫자로 바꾸는 int() 사용 등이 복잡성을 더했다.
노트:
5주 차 강의 - aws 새 서버 구매해서 연결하고, 그래서 가비아에 dns 설정 다시 하고, 파일질라에 서버 연결도 다시 했다. 애먹은 건, og 이미지. 넣은 이미지가 제대로 보이지 않아서, 캐시를 지우고 시도했지만 잘 되지 않았다. 지우고 새로 복사하고 여러 가지 시도를 해서 제대로 나왔는데, 여러 가지를 해서 무엇 때문에 나오지 않았고, 나오게 되었는지 정확히 모르겠다. 아무튼 성공.
Og:meta 태그 테스트하려면?
개발자 도구 : https://developers.facebook.com/tools/debug/
[Table] 강의: Flask 기초(연습{버킷리스트}), AWS 서버 세팅, 도메인 연결, og 태그 (5-1~5-14)
강의 | 내용(내 기준, 알아둘 점) | 코드 예시 |
5-1 | 파일질라 설치, 가비아 가입 및 도메인 구매 | |
5-2 버킷리스트 | ||
5-3 | POST 연습(기록하기) | @app.route("/bucket", methods=["POST"]) def bucket_post(): bucket_receive = request.form["bucket_give"] count = db.bucket.find({},{'_id':False}).count() num = count + 1 doc = { 'num':num, 'bucket': bucket_receive, 'done':0 } db.bucket.insert_one(doc) return jsonify({'msg':'등록 완료!'}) |
5-4 | GET 연습(보여주기) | function show_bucket(){ $('#bucket-list').empty() $.ajax({ type: "GET", url: "/bucket", data: {}, success: function (response) { let rows = response['buckets'] for (let i = 0; i < rows.length; i++) { let bucket = rows[i]['bucket'] let num = rows[i]['num'] let done = rows[i]['done'] let temp_html = `` if (done == 0) { temp_html = `<li> <h2>✅ ${bucket}</h2> <button onclick="done_bucket(${num})" type="button" class="btn btn-outline-primary">완료!</button> </li>` } else { temp_html = `<li> <h2 class="done">✅ ${bucket}</h2> </li>` } $('#bucket-list').append(temp_html) } } }); } |
5-5 | POST(완료하기) | @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': '버킷 완료!'}) |
5-6 | ||
5-7 | 언제나 요청에 응답하려면, 1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야 하고, 2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소로 나의 웹 서비스에 접근할 수 있어야 함. AWS 라는 클라우드 서비스에서 편하게 서버 관리 가능. ->항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권 구입 |
|
5-8 AWS* | AWS EC2 서버 구매 Ubuntu Server 18.04 또는 20.04 버전을 구매 SSH(Secure Shell Protocol) : 다른 컴퓨터에 접속할 때 쓰는 프로그램. 접속할 컴퓨터가 22번 포트가 열려있어야 접속 가능합니다. AWS EC2의 경우, 이미 22번 포트가 열려있습니다. |
|
5-9 | # python3 -> python (python3를 python으로 사용할 수 있게 하는 명령어) sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 # pip3 -> pip (pip 패키지 마법사 설치) sudo apt-get update sudo apt-get install -y python3-pip sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # port forwarding (80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어) sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000 FileZilla 사용법 |
|
5-10 | pip install flask pip install pymongo dnspython AWS에서 5000포트를 열어주기 Edit inbound rules
|
|
5-11 | 원격 접속 종료해도 서버가 계속 돌아가게 하기 nohup python app.py & 서버 종료 - 강제 종료 ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill |
|
5-12 | 도메인 연결 | |
5-13 | og 태그 <meta property="og:title" content="내 사이트의 제목" /> <meta property="og:description" content="보고 있는 페이지의 내용 요약" /> <meta property="og:image" content="이미지URL" /> |
|
5-14 homework** |
*5-8 터미널 명령어
Mac은 ssh가 있어서, 명령어로 바로 접근 가능!
sudo chmod 400 받은키페어를끌어다놓기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올 때는 exit으로 나옴)
**5-14
'항해99_7기 > 사전 준비' 카테고리의 다른 글
[항해99] 사전준비-4 Flask 기초 (0) | 2022.05.02 |
---|---|
[항해99] 사전준비-3 Python, DB (0) | 2022.05.01 |
[항해99] 사전준비-2 JQuery, Ajax (0) | 2022.04.28 |
[항해99] 사전준비-1 HTML, CSS, Javascript (0) | 2022.04.27 |
[항해99] 사전준비-0 (0) | 2022.04.27 |