Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 스터디
- HTML
- 1주차
- javaScript기초
- 자바스크립트는왜그모양일까
- javascript
- chapter2
- CS
- CSS
- OperatingSystem
- Todo
- 실전프로젝트
- computerscience
- WIL
- 항해99
- JS
- Til
- 쿠키
- 4주차
- OS
- DOM
- 버킷리스트
- 숙제
- 알고리즘
- 완강
- 3주차
- 화살표함수
- react
- 생각정리
- 5주차
Archives
- Today
- Total
개발캡슐
2022.07.20~23_5주차_Flask서버_실행할거야!_10강 본문
스파르타코딩클럽-항해99_9기/5주차_Projects02, GET, POST, Filezilla
2022.07.20~23_5주차_Flask서버_실행할거야!_10강
DevGreeny 2022. 7. 26. 22:245-10강. Flask 서버를 실행할거야!
- 만든 팬명록 업로드할 거야
- 내 작품이 세상에 공개될게야.
- 일단 test.py 올린 거 지워
1_옮겨일단- 내 팬명록 업로드 해.
- 내가 산 컴퓨터로 이동할 내 컴퓨터의 폴더 / 파일
- sparta/projects/homework/static
- sparta/projects/homework/emplates
- sparta/projects/homework/app.py
=> 이렇게 두 폴더, 한 파일만 올려줌.
=> 혹시나 잘못옮기면 그냥 지워주면 됨.
2_다시 git-bash(원격접속한 거)
- git-bash(원격접속한 거) - 현재 위치 = filezilla 내가 산 컴퓨터의 위치.
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta/
ubuntu@ip-172-31-40-168:~/sparta$ ls
test.py
ubuntu@ip-172-31-40-168:~/sparta$ python test.py
Hello sparta!!
ubuntu@ip-172-31-40-168:~/sparta$
=>git-bash화면.
- ls 쳐 봐. 그럼 app.py 파일, static 폴더, templates 폴더 들어가있는 걸 확인할 수 있어.
ubuntu@ip-172-31-40-168:~/sparta$ ls
=> 결과 : app.py static templates
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta/
ubuntu@ip-172-31-40-168:~/sparta$ ls
test.py
ubuntu@ip-172-31-40-168:~/sparta$ python test.py
Hello sparta!!
ubuntu@ip-172-31-40-168:~/sparta$ ls
app.py static templates
ubuntu@ip-172-31-40-168:~/sparta$
=>git-bash화면.
3_git-bash/terminal로 실행할거야
- python 띄고 app.py 하면
ubuntu@ip-172-31-40-168:~/sparta$ python app.py
=> 결과: No module named 'flask'
=> No module named 'flask' => Flask가 안 깔렸어유. 란 뜻이야.
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta/
ubuntu@ip-172-31-40-168:~/sparta$ ls
test.py
ubuntu@ip-172-31-40-168:~/sparta$ python test.py
Hello sparta!!
ubuntu@ip-172-31-40-168:~/sparta$ ls
app.py static templates
ubuntu@ip-172-31-40-168:~/sparta$ python app.py
Traceback (most recent call last):
File "app.py", line 1, in <module>
from flask import Flask, render_template, request, jsonify
ModuleNotFoundError: No module named 'flask'
ubuntu@ip-172-31-40-168:~/sparta$
=> 실제 git-bash창.
4_git-bash/terminal로 패키지 설치
- Flask, pymongo, dnspython 설치 - 명령어로
- Flask 깔아줄게.
- 명령어로
$ pip install flask
=> 결과: 깔림.
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.1 Werkzeug-2.1.2 click-8.1.3 flask-2.1.3 importlib-metadata-4.12.0 itsdangerous-2.1.2
=> git-bash 화면 : 그럼 이렇게 Flask가 설치됨.
- 다시 python app.py
ubuntu@ip-172-31-40-168:~/sparta$ python app.py
=> 결과 : No module named 'pymongo' => pymongo가 안 깔려있어.
Traceback (most recent call last):
File "app.py", line 4, in <module>
from pymongo import MongoClient
ModuleNotFoundError: No module named 'pymongo'
ubuntu@ip-172-31-40-168:~/sparta$
=> git-bash화면.
- pymongo, dnspython도 깔아줘야 되닌까말이지~ 아하핳
- pymongo, dnspython도 깔아주자.
- pymongo
$ pip install pymongo
- dnspython
$ pip install dnspython
=> 결과 : 잘 깔림.
ubuntu@ip-172-31-40-168:~/sparta$ pip install pymongo
Collecting pymongo
Downloading pymongo-4.2.0-cp38-cp38-manylinux2014_x86_64.whl (506 kB)
|████████████████████████████████| 506 kB 11.1 MB/s
Installing collected packages: pymongo
Successfully installed pymongo-4.2.0
ubuntu@ip-172-31-40-168:~/sparta$ pip install dnspython
Collecting dnspython
Downloading dnspython-2.2.1-py3-none-any.whl (269 kB)
|████████████████████████████████| 269 kB 16.2 MB/s
Installing collected packages: dnspython
Successfully installed dnspython-2.2.1
ubuntu@ip-172-31-40-168:~/sparta$
=> git-bash 화면.
- 그 다음 python 띄고 다시 app.py
$ python app.py
=> 결과 : 연결 확인 됨.
ubuntu@ip-172-31-40-168:~/sparta$ python app.py
* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:5000
* Running on http://172.31.40.168:5000 (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 664-708-118
=> git-bash화면.
=> 브라우저 확인 : /5000으로 연결 안 됨.
- 인스턴스, 산 컴퓨터에서 5000번으로 접속할 수 있는 구멍을 안 열어둬서 그래.
- 그래서 열어줘야함.
5_5000포트로 접속할 수 있게 열어보기.
- AWS에서 5000포트에 접속할 수 있도록 열어볼게.
1.인스턴스 정보 - 보안창 - 보안그룹 (launch-wizard-1) 눌러잇
2. 보안 그룹(- launch - wizard -1) -> 인바운드 규칙 편집(Edit inbound rules)
3.인바운드 규칙 편집
- '규칙 추가'버튼 눌러줘
- 추가된 규칙
- 규칙 2개 추가해서 설정해준다.
- 각각 포트 범위 5000 , 포트 범위 80(80 은 왜 하는 지 난중에 알랴줌!)
- 둘 다 소스유형 anywhere IPv4로.
- 그대로 규칙 저장!
- 인스턴스 퍼블릭 IPv4주소로 팬명록띄우기
- 브라우저 주소 창에 인스턴스 퍼블릭 IPv4주소 붙여넣고 내 로컬 포트번호입력
http://43.200.181.233:5000
=> 전세계 사람들이 이 주소를 쓰면 내 팬명록 볼 수 있어. 사실 5000은 떼도 돼ㅎ
=> 결과 : 내 팬명록 뜸
- 포트 5000붙였을 때.
=> 포트 5000 안 붙였을 때.
6_포트값 80포트 => 5000 포트로 넘겨주기
- 해당 명령어를 아까 이미 줌.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
- 예) naver.com:80 이라고 쳐주면
=> 그대로 naver.com으로 뜸. 5000은 안 뜸..
- 그래서 80으로 받아서 5000에다 연결을 시켜주면 된당.
- 리눅스( 외부요청들 <- 80포트 -> 5000포트로 우리 서버) <=요로케 채널링 해주면 돼.
- 이게 바로 이 명령어여서, 우리가 5000을 떼고도 팬명록에 접속 가능함.
#### port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
=> git-bash(내가 산 컴퓨터에 원격접속한 것)를 닫으면 팬명록도 꺼져 ㅠ
- 그래서 이걸 유지시키는 걸 해볼거야. => nohup설정
'스파르타코딩클럽-항해99_9기 > 5주차_Projects02, GET, POST, Filezilla' 카테고리의 다른 글
2022.07.20~23_5주차_og태그_13강 (0) | 2022.07.27 |
---|---|
2022.07.20~23_5주차_nohup설정 & 도메인 연결_11강~12강 (0) | 2022.07.26 |
2022.07.20~23_5주차_서버_세팅하기_9강 (0) | 2022.07.26 |
2022.07.20~23_5주차_버킷리스트 프로젝트&내 홈 전세계배포_7강~8강 (0) | 2022.07.23 |
2022.07.20~23_5주차_버킷리스트 프로젝트&내 홈 전세계배포_6강 (0) | 2022.07.23 |