통상적으로 서버를 돌리는 파일 이름을 'app.py'로 명명
prac > static : css나 이미지파일을 담을 때 사용
> templates : html파일을 담을 때 사용
ㅁ flask 시작하기 (대표적인 2가지 방식 익히기)
1. get방식 : 데이터 조회를 요청할 때 사용
ㅇ 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)
}
})
2. post 방식 : 데이터를 생성/변경/삭제 시 사용
ㅇ 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)
}
})
※ api와 ajax간의 title_give는 필히 동일해야 한다.
ㅇ 사전 설치패키지
- flask
- pymongo : mongodb에 저장
- requests : 크롤링에 필요
- bs4 : beautiful soup
ㅇ 모든 프로젝트 진행에 앞서 api설계가 가장 중요하다
ㅇ 브라우저(개발자도구)에서 보이는 것과 파이썬 코드가 접속했을 때의 meta태그의 순서가 다른 경우,
BeautifulSoup을 진행했을 때, "None" 값이 리턴됨. 이 경우, 2번 방법을 사용.
1) 개발자 도구 內, 필요한 값에 copy selector 진행
ex. title = soup.select_one('meta[head > meta:nth-child(9)]')
2) 개발자 도구 內, 필요한 meta태그에 이어지는 속성 값만 가져오기(@에 치환)
ex. title = soup.select_one('meta[@]')