일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nest.js circular Dependency
- jest
- react native 무한스크롤
- react
- Testing-library/react
- FlatList 무한 스크롤
- React 테스트코드
- ScrollView 무한 스크롤
- nest.js 순환 참조
- 리액트 테스트
- HTML
- TodoList 테스트 코드
- nest.js forwardRef
- TDD방식으로 리액트 테스팅
- react 테스트
- React Testing Library
- mock api 사용법
- 비동기 테스트
- 프로젝트 배포하기
- react jest
- 개발
- CSS
- javascript 테스트
- 리액트 테스트 코드
- react testing library 비동기 테스트 사용법
- 첫코딩
- JavaScript
- nest.js 순환 종속성
- 첫 코딩
- mock api를 이용한 react 테스트
- Today
- Total
성장을 위한 기록
항해99 사전강의 4주차 회고 본문
본 내용은 항해99 & 스파르타코딩클럽에 강의 내용이 포함되어 있습니다.
문제 시 바로 삭제하겠습니다.
이번 주차에서는 Flask를 이용하여 서버를 개설하고
3주차에 학습한 mongodb와 크롤링을 이용한 웹페이지를 제작했다.
4주차 목차
Flask 프레임워크
서버를 구동하기 위해 쓰는 프레임워크로 편한 코드 모음이다. 이게 없다면 서버 만드는게 보통일이 아니였을 것 같다.
재밌는 비유가 있었는데 Flask가 없다면 '태양초를 빻아서 고추장을 만드는 격'이라는 말이 자꾸 생각났다.
직접 만든다면 더 좋은 이점은 있을 수 있겠지만, 그 힘듬을 감당하면서까지 직접 만들 일은 없을 것 같다.
Flask를 사용하기 전에 static, templates 폴더를 만들고 app.py 파일은 만든다.
static은 CSS를 저장하는 파일의 용도로 사용하고
temmplates는 HTML 파일을 저장하는 용도로 사용할 것이다.
app.py파일은 꼭 같은 이름을 사용할 필요는 없지만 통상적으로 Flask를 돌리는 파일을 app.py로 이름을 짓는다( 개발에서 혼자 다른 방식으로 하는 건 그렇게 좋아보이지 않는다....)
from flask import Flask, render_template
app = Flask(__name__)
## URL 별로 함수명이 같거나,
## route('/') 등의 주소가 같으면 안됩니다.
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
위 코드는 html을 연결하기 위해 render_template (Flask 내장 함수)를 사용한 Flask 기본 코드이다.
home() 함수에서 index.html을 연결한다.
총 실습 예제는 2가지를 진행했다.
1. 화성땅 공동구매
기능으로는 웹페이지에서 작성한 이름, 주소, 평수를 POST 방식으로 서버에 전달하고 이를 DB에 저장한다. 그리고 저장된 DB에서 이름, 주소, 평수를 GET으로 가져와 웹페이지 하단에 작성된 내용을 추가된다.
강의를 들으면서 같이 학습했기에 크게 어려운 부분은 없었고 약간에 버벅거림은 있었지만 끝내 잘 완성했다.
2. 스파르피디아
1번 예제에서 크롤링을 추가했다.
기능으로는 검색한 네이버 영화 URL(영화 URL을 통해 그 페이지에 이미지, 소개 글, 제목을 가져온다), 평점, 코멘트를 POST방식으로 서버에 전달하고 이를 DB에 저장 그리고 DB에서 제목, 이미지, 소개 글, 평점, 코멘트를 GET방식으로 가져와 웹페이지에 카드박스를 추가한다.
이 예제는 강의를 보기전에 뼈대 코드만 같이 만들고 혼자 작성해봤다. 시간은 30분 정도 걸린 것 같다.
역시 버벅거림은 있었으나 기본적인 GET, POST와 크롤링 ( 1~2일전에 학습했기 때문에 기억이 난다.)을 이용했기 때문에 작성에 어려움은 없었던 것 같다. 한 가지 느낀점은 복붙을 잘 이용하자 !!! 오타때문에 고생 많이 하는 것 같다.
다 작성하고 강의를 본 뒤에 몇 가지 차이점이 있었다.
//강의
temp_html = `....
src = "${image}"
....`
data = requests.get(url_receive, headers=headers)
// 나
temp_html = `...
src = ${image}
...`
url = url_receive
data = requests.get(url, headers=headers)
나는 image 값이 문자열로 반환된다 생각하여 (console.log 에서 문자열로 반환됐기 때문에) ""을 삭제하고 변수를 입력했다. 강의에서는 ""를 포함하여 작성했다
두 차이를 보고 둘 다 작동되는 걸 봤을 때 둘다 문자열로 반환된 것 같은데, ""가 두번 사용되도 문자열로 잘 반환할 수 있다면 오류를 줄이기 위해 ""를 사용하는 방법을 택할 것 같다. 하지만 아직 어떻게 작성되는지 확실하지 않아 단정 할 수 없었다. (""www.naver.com''" 이라면 ""는 공백을 묶고 www.naver.com 문자열로 취급 안하는게 맞지 않나라는 생각)
수정 >> image값이 문자열로 반환되지 않는다.( ""로 묶여서 반환 X)
다시 확인 해보니 ""없이 반환된다. src=".."이 맞는 문법이라 생각되는데 ""없이 동작하는 이유는 잘 모르겠지만, 옳은 문법은 아닌것 같다. 앞으로 ""로 잘 묶어 사용하자 !!
두 번째 차이는 내가 부족했기 때문에 나왔다. 기본 문법에 이해도가 떨어졌기에 url을 변경할 수 있다는 생각을 못했다.
그래서 나는 url에 맞춰 변수를 추가했지만 이 과정은 의미없이 일을 두번 한 셈이 됐다.
4주차 숙제 결과물
이전에 작성했던 팬미팅에 기능적으로 추가했다. flask를 이용해 서버를 구축하고 get post를 이용해 글을 저장하고 표시하는 기능이 추가됐다.
2번째 실습 예제를 먼저 혼자 해봤기 때문에 숙제는 금방 작성할 수 있었다.
'개발 일기 및 회고 > 회고' 카테고리의 다른 글
3주차 내용 요약 (0) | 2022.04.16 |
---|---|
항해99 사전강의 5주차 회고 (0) | 2022.04.04 |
항해 99 사전강의 3주차 회고 파이썬, mongodb (0) | 2022.04.02 |
항해99 사전강의 2주차 JQuery, Ajax 회고 (0) | 2022.03.31 |
항해 99 사전강의 1주차 html, css, js (0) | 2022.03.29 |