일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CSS
- 프로그래밍첫걸음시작하기
- typescript
- PYTHON
- ionic-react
- next.js 빌드 오류
- React Native
- Firebase
- mongodb
- styled components
- ionic react
- 내일배움카드
- 항해99
- 바이트디그리
- javascript
- HTML
- styled-components
- 알고리즘
- 패스트캠퍼스
- 스파르타코딩클럽
- Algorithm
- K디지털크레딧
- 부트캠프
- 프로그래밍기초
- spartacodingclub
- react
- react-native
- 프로그래머스
- ionic
- 스파르타코딩클럽 후기
- Today
- Total
bravo my life!
[항해99][Python][4주차] 내용 정리 본문
1. Flask
Flask 프레임워크는 서버 구동을 위한 편한 코드의 모음이다.
서버를 구성하는 일은 어려운 일이기 때문에, 프레임워크의 사용이 필요하다.
튜터의 말로는 실무에서도 장인정신으로 한 땀 한 땀 밑바닥부터 서버를 만드는 일은 거의 없다고 한다.
그만큼 어렵고 시간이 많이 걸리는 일이기 때문에 프레임워크의 사용이 거의 필수적이라고 한다.
프레임워크를 쓰지 않으면 태양초를 빻아서 고추장을 만드는 격!
프레임워크는 3분 요리/소스세트라고 생각하면 되겠습니다.
2. 폴더, 파일 정리
static 폴더 : html 파일 내의 이미지, js, css 등을 저장할 폴더.
templates 폴더 : html 파일을 저장할 폴더.
app.py : flask 메인 python 파일.
3. API 만들기
API는 은행의 창구라고 이해하면 편하다.
대출 창구에서는 대출 업무를, 예금 창구에서는 예금 업무를 하는 것처럼 API도 요청에 따라 용도별로 나뉘어 작동한다.
- GET, POST 방식
클라이언트는 http라는 통신규약을 따르며 데이터를 요청해야 하고 여러 방식이 존재하지만, 강의에서 학습한 것은
그중 가장 많이 사용되는 GET, POST 방식을 배웠다.
■ GET
- 통상적으로 데이터 조회를 요청할 때 사용.
예) 영화 목록 조회
- 데이터 전달 : url 뒤에 물음표를 붙여 key=value로 전달.
예) google.com?q=북극곰
예) /test?title_give=봄날은간다
■ POST
- 통상적으로 데이터 생성(create), 변경(update), 삭제(delete)를 요청할 때 사용.
예) 회원가입, 회원 탈퇴, 비밀번호 수정
- 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달.
■ GET, POST 요청에서 클라이언트의 데이터를 받는 방법
- Jquery 임포트
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
- GET 요청 API코드
@app.route('/test', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
- GET 요청 확인 Ajax코드
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
- 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!'})
- POST 요청 확인 Ajax코드
$.ajax({
type: "POST",
url: "/test",
data: { title_give:'봄날은간다' },
success: function(response){
console.log(response)
}
})
4. 조각 기능
title = soup.select_one('meta[property="og:title"]')
print(title['content'])
#위 코드는 아래 코드와 동일하다.
title = soup.select_one('meta[property="og:title"]')['content']
print(title)
#네이버 영화에서 타이틀, 이미지, 내용 크롤링하기
#참조 url : https://movie.naver.com/movie/bi/mi/basic.naver?code=191597#
title = soup.select_one('meta[property="og:title"]')['content']
image = soup.select_one('meta[property="og:image"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
print(title, image, desc)
#출력값
#보스 베이비 2 https://movie-phinf.pstatic.net/20210622_174/1624324910624JhEq2_JPEG/movie_image.jpg?type=m665_443_2 베이비 주식회사의 레전드 보스 베이비에서 인생 만렙 CEO가 된 ‘테드’.베이비인 줄 알았던 조카 ‘티...
5. 4주차 숙제
닉네임, 응원 댓글에 내용을 기입하고 응원 남기기 버튼을 누르면
서버에 해당 내용이 저장되고, 서버에 저장된 내용이 클라이언트
측에 표시되는 기능을 구현하였다.
이번 숙제는 해답을 보지 않고 완료하였다... 는 페이크고, 이전
강의 영상을 보며 만들었다. 그러나 해답을 보지 않고 만들었다는
뿌듯함에 기분은 좋다.
'Study > 항해99' 카테고리의 다른 글
[항해99][Python][.replace()] beautiful soup을 이용한 웹페이지 크롤링 문제 발생 및 해결 (0) | 2022.02.19 |
---|---|
[항해99][Python][5주차] 내용 정리 (0) | 2022.02.05 |
[항해99][Python][3주차] 내용 정리 (0) | 2022.01.28 |
[항해99][CSS][2주차] 내용 정리 (0) | 2022.01.26 |
[항해99][CSS][1주차] 간단후기. 세트로 사용하면 좋은 요소들. (0) | 2022.01.24 |