스파르타 코딩클럽 웹개발 종합반 인강 - 공부 기록 |
수강 시작 ~
2023. 06. 06 ~
https://github.com/hotdog7778/sparta
백엔드
지난시간에 배운 파이썬으로 백엔드를 만들어보자.
Flask 라는 프레임 워크를 사용해서 서버 만들기
sparta/project/01.prac 디렉토리 에서 시작
가상환경(라이브러리) 통을 만들자
# 디렉토리 venv 설정 (가상환경)
cd /Users/tgkim/Desktop/sparta/project/01.prac
python -m venv venv
flask 라이브러리를 설치
pip install flask
app.py 파일에서 준비된 코드로 시작.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5001,debug=True)
app.py 실행 후 브라우저에서 접속해보자
더보기
@app.route('/') 부분을 수정해서 URL을 나눌 수 있습니다! 간단하죠?
- 주의할점!
- url 별로 함수명이 같거나,
- route('/')내의 주소가 같으면 안됩니다!
Flask - HTML
app.py 에다 html을 직접 작성 하지말고 index.html 파일에서 불러와보자
사용자(나) 는 브라우저를 사용해서 app.py에 요청한다.
app.py 가 동작 하면서 index.html (HTML, CSS, JavaScript) 를 전해준다.
브라우저는 HTML, CSS, JavaScript 를 보고 사용자(나)에게 보여준다.
더보기
Flask 서버를 만들 때,
항상,
프로젝트 폴더 안에,
ㄴtemplates 폴더 (html파일을 넣어둡니다)
ㄴapp.py 파일 이렇게 두 개를 만들어두고 시작하세요.
Flask - API
GET
Flow)
버튼을 누르면 > fetch 가 /test 호출 > app.py가 메세지 리턴 > 받은 메세지를 console.log로 출력한다.
index.html
<script>
function hey() {
fetch("/test").then(res => res.json()).then(data => {
console.log(data)
})
}
</script>
</head>
<body>
<h1> 제목을 입력합니다. </h1>
<button onclick="hey()">나는 버튼!</button>
</body>
@app.route('/test', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
동작하는게 자꾸 헷갈린다.
POST
get은 조회만 했는데 POST는 데이터도 보낸다.
// POST 요청 fetch
let formData = new FormData();
formData.append("title_give", "블랙팬서");
// formData 에 데이터를 얹어서 보낸다.
fetch("/test", { method: "POST", body: formData }).then(res => res.json()).then(data => {
console.log(data)
})
# POST 요청 API 코드
@app.route('/test', methods=['POST'])
def test_post():
title_receive = request.form['title_give']
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
'들은 강의' 카테고리의 다른 글
[웹개발 입문 강의] [프로젝트 실습] 스파르타피디아 페이지 (0) | 2023.06.12 |
---|---|
[웹개발 입문 강의] [프로젝트 실습] 화성땅 공동구매 페이지 (0) | 2023.06.09 |
[웹개발 입문 강의] [Python] mongoDB, pymongo, Crawling (2) | 2023.06.08 |
[웹개발 입문 강의] [Python] 기본 문법, 라이브러리, 크롤링 (0) | 2023.06.08 |
[웹개발 입문 강의] [JavaScript] Fetch 복습 (0) | 2023.06.08 |