[서피터의 스파르타 코딩클럽] 4주차
강의 내용
-
서버
"컴퓨터에 돌아가고 있는 하나의 프로그램"로컬 개발환경 = 컴퓨터가 한 대 임으로 같은 컴퓨터에 서버도 만들고, 요청도하는것. 즉 {클라이언트 = 서버}
-
폴더 세팅 및 Fask 설치
sparta > projects > prac > venv > 3.8
서버를 돌아가게 하는 파일 이름은 통상적으로 app.py 라고 만든다.
file > setting > interpreter > flask > install
flask 프레임워크 = 서버를 구동시켜주는 편한 코드 모음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=5000,debug=True)
커서 우측클릭후 'Run app' 하면 실행 성공! (ctrl+shift+f10)
@app.route('/) 부분을 수정해서 URL을 나눌 수 있습니다!
url 별로 함수명이 같거나, route('/')내의 주소가 같으면 안됩니다. -
Flask 시작하기
기본 폴더 구조
프로젝트 폴더 안에,
ㄴstatic 폴더 (이미지, CSS파일을 넣어둔다)
ㄴtemplates 폴더 (html파일을 넣어둔다)
ㄴapp.py 파일
*venv 는 안보인다~ 라고 생각하기HTTP request moethod (요청 메소드) 중 GET, POST 다뤄보기!
GET = 통상적으로 데이터 조회(read)를 요청할때
ㄴ데이터 전달:URL 뒤에 물음표를 붙여 Key = value로 전달
ㄴ예: google.com?q=북극곰
POST = 통상적으로 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청할때
ㄴ데이터 전달: 바로 보이지 않는 HTML body에 Key:vlaue 형태로 전달 -
Post / GET
- 클라이언트와 서버 확인하기
- 서버부터 만들기
- 클라이언트 만들기
- 완성 확인하기
-
프로젝트 세팅
*Flask, Pymongo, bs4, requests -
API 설계하기(나홀로메모장)
포스팅API - 요청URL = /memo, 요청 방식 = POST
ㄴ 요청 데이터: URL, 코멘트
ㄴ 서버가 제공할 기능: URL의 meta태그 정보를 바탕으로 제목, 설명, 이미지URL 스크래핑
ㄴ (제목, 설명, URL, 이미지URL, 코멘트) 정보를 모두 DB에 저장
ㄴ 응답 데이터: API가 정상적으로 작동하는지 클라이언트에게 알려주기 위해서 성공 메세지 보내기
ㄴ(Json형식)'result'='success'리스팅API - 요청URL = /memo, 요청 방식 = GET
ㄴ 요청 데이터: 없음
ㄴ 서버가 제공할 기능: DB에 저장돼있는 모든(제목, 설명, URL, 이미지URL, 코멘트) 정보 가져오기
ㄴ 응답 데이터: 아티클(기사)들의 정보(제목, 설명, URL, 이미지URL, 코멘트) > 카드 만들어서 붙이기
ㄴ(Json형식)'articles':아티클 정보
-
meta 태크 스크래핑(나홀로메모장)
"og:title"
title = soup.selectone('meta[property="og:title"]')['content']
"og:image"
image = soup.select_one('meta[property="og:image"]')['content']
"og:description"_
desc = soup.select_one('meta[property="og:description"]')['content']
소감
4주차도 쉽지 않았다!
휴가 다녀오겠습니다.
오예~
Author And Source
이 문제에 관하여([서피터의 스파르타 코딩클럽] 4주차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@petahseo/서피터의-스파르타-코딩클럽-4주차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)