본 포스팅은 노마드코더님의 온라인 강의에 대한 복습을 기록하기 위한 포스팅입니다.
※ 본 포스팅의 내용은 강의를 들은 후 필자의 개인적인 의견을 기재한 것이니, 정답이 아닐 수 있음을 참고하십시오.
강의 소개 : 파이썬으로 웹 스크래퍼 만들기 (2주 완성반)
-. 내용 : 파이썬 기초 (타입, 변수, 함수, 클래스 등 및 웹 스크래퍼 코드 작성법)
-. 비용 : 100% 무료 강의
-. 비고 : 한글 자막 제공 / 강의 100% 완료 시 10% 할인 쿠폰 제공
온라인 강의 : https://nomadcoders.co/ / 풀스택 개발자 로드맵 : https://nomadcoders.co/roadmap
유튜브 채널 : https://www.youtube.com/channel/UCUpJs89fSBXNolQGOYKn0YQ
#3.0 ~ #3.6은 Django를 이용하는 강의로 차후에 업데이트 예정입니다.
#4.1 Introduction to Flask & #4.2 Dynamic URLs and Templates
1) Flask 란?
-. 파이썬을 이용하여 웹 어플리케이션(웹 서버)을 만드는 "마이크로 웹 프레임워크"입니다.
-. 다른 파이썬의 웹 프레임워크로는 "Django", "Tornado" 등이 있지만 Flask는 작은 서버를 만들 때 매우 유용합니다.
2) Flask 사용방법
-. Flask 설치
* repl.it : Packages > Flask 검색 후 Add
* Local : pip install flask
-. Flask 패키지 Import 및 사용 준비
from flask import Flask
app = Flask("test")
@app.route("/")
def home():
return "Hello World!!"
# 외부 접속 가능 (본인 IP:5000)
app.run(host="0.0.0.0")
# 외부 접속 불가 (127.0.0.1:5000)
app.run()
-. @(데코레이터) : 바로 아래에 있는 Function을 찾아 decorate(꾸미다) 해주는 역할을 함
-. @app.route("/") : 해당 URL의 루트 영역에 접속 요청이 있을 시 (ex. https://mans-daily.tistory.com/)
* @app.route("/test") : https://mans-daily.tistory.com/test
-. def home() : route로 진입 시 실행될 Function 설정 (route 1개당 반드시 1개의 Function이 있어야 함)
3) Flask를 이용하여 DynamicURL 사용하기
-. DynamicURL 이란?
* URL을 통해 제공되는 매개변수에 의존하는 콘텐츠가 있는 웹페이지의 주소 또는 URL을 말합니다.
from flask import Flask
app = Flask("test")
@app.route("/")
def home():
return "Hello World!!"
@app.route("/<username>")
def hello_user(username):
return f"Hello your name is {username}"
app.run(host="0.0.0.0")
-. <>(placeholder) : Placeholder가 있는 위치에 있는 URL의 값을 변수로 받아옴
* <> 사용 시 반드시 Function에서 argument로 해당 변수를 받아주어야 합니다.
-. 이렇게 placeholder를 사용하면 URL에 입력된 값을 토대로 바로 사용할 수 있게 되는데요.
-. 해당 값을 토대로 URL 접속 시 해당 값으로 DB를 검새하거나 다양한 방식으로 사용할 수 있습니다.
* instagram.com/nomad_coders -> DB에서 nomad_coders를 검색하여 바로 브라우저에 출력해줍니다.
4) Flask를 이용하여 html을 브라우저에 출력하기
-. 파이썬 코드에서 바로 html 작성 : 아래 코드와 같이 return값으로 html 코드를 전송하면 됩니다.
from flask import Flask
app = Flask("test")
@app.route("/")
def home():
return "<h1>Job Search</h1><form><input placeholder='What job do you wand?' required /><button>Search</Button></form>"
app.run(host="0.0.0.0")
5) Flask를 이용하여 html 템플릿을 작성해서 브라우저에 출력하기
-. 위에서와 같이 html을 .py 에서 작성하는 것은 상당히 불편하기 때문에 html 템플릿을 만드는 방식을 이용합니다.
""" main.py """
from flask import Flask, render_template
app = Flask("test")
@app.route("/")
def home():
return render_template(
"home.html"
)
app.run(host="0.0.0.0")
""" templates/home.html """
<!DOCTYPE html>
<html>
<head>
<title>Job Search</title>
</head>
<body>
<h1>Job Search</h1>
<form>
<input placeholder="Search for a job?" required name="word" />
<button>Search</button>
</form>
</body>
-. 템플릿을 만들기 위해서는 "render_template"를 추가로 import 해주어야 합니다.
-. html 코드를 바로 리턴한 것과 같은 화면이지만 html 코드를 손쉽게 불러올 수 있습니다.
※ 본 포스팅의 내용은 강의를 들은 후 필자의 개인적인 의견을 기재한 것으로,
정답이 아닐 수 있음을 참고하십시오.
이상으로 Python으로 웹 스크래퍼 만들기 복습 9일 차를 마치겠습니다.