1 분 소요

Flask

  • python을 이용해서 웹사이트를 구축 할 수 있는 초소형 micro framework
  • 매우 사용하기 쉬움
  1. 새로운 폴더 만들기
def save_to_file(file_name, jobs):
  file = open(f"{file_name}.csv","w",encoding="utf-8-sig")
  file.write("Position,Company,Location,URL\n")
  
  for job in jobs:
    file.write(f"{job['position']},{job['company']},{job['location']},{job['link']}\n")
  
  file.close()
  • file.py만들고 main.py에서 가져오기
  1. main.py에서
from extractors.indeed import extract_indeed_jobs
from extractors.wwr import extract_wwr_jobs
from file import save_to_file

keyword = input("What do oy want to search for?")

indeed = extract_indeed_jobs(keyword)
wwr = extract_wwr_jobs(keyword)
jobs = indeed + wwr

save_to_file(keyword, jobs)
  1. flask
  • flask 설치
  • main.py에서 아래와 같이 입력
from flask import Flask


app = Flask("JobScrapper")

app.run("0.0.0.0")

image

  • 세줄의 코드로 웹사이트를 만듦
  • not found가 뜨는이유는, “0.0.0.0”에서 방문자들을 처리하는 코드를 작성하지 않았기 때문
  • 브라우저는 hompage(/)을 가져오려 하지만 아무것도 reply하지 않음

사용자가 홈페이지에 접속하면 reply하는 방법

@app.route("/")     ##decorate
def home():
  retrun 'hey there'
  • 사용자가 이 route로 이동하면 함수(home)를 실행하도록 만듦
  • @가 있는 코드를 함수의 위에 위치시켜야함(순서가 바뀌면 작동하지 않음)
  • @~ 를 decorate라고 함 = syntactic sugar
@app.route("/hello")
def hello():
  return 'hello you!'
• 오른쪽 창 주소에서 맨마지막에 /hello 추가 입력
• Stop했다가 play버튼 클릭
• 새로운 코드를 저장하면 서버를 재시작해야함

user에게 HTML전달하기

문자열 안에 HTML을 넣기

@app.route("/")
def home():
  return '<h1>Hey therer</h1><  '

image

Render

• 새로운 폴더 만들기(templates) main,py와 같은레벨에 있어야함
• templates 안에 home.html 파일 만들기
• ! 입력
Body안에 `<h1>Hello to you</h1>`입력
• main.py에서 from flask import render_template
• Flask에게 home.html파일을 render해달라하기
```py
@app.route("/")
def home():
  return redner_template("home.html")
```
• return render_template()의 괄호안에는 html파일의 이름이 들어가야함
• Render_template()는 Flask가 templates폴더를 들여다보게 함

image

변수를 home.html파일로 보내기

from flask import Flask, render_template

app = Flask("JobScrapper")

@app.route("/")
def home():
  return redner_template("home.html", name="nico")

app.run("0.0.0.0")
<body>
  <h1>Hello to you! my name is </h1>
</body>
• name이라는 변수 보내기
• Html파일에서 변수 받기 (중괄호 2개)
• user가 우리의웹사이트를 보기전에, flask는 그 변수를 replace
• Flask는 주어진 변수를 모두 replpace 하면서 이 템플릿을 render함

image

댓글남기기