python-32: Flask
Flask
- python을 이용해서 웹사이트를 구축 할 수 있는 초소형 micro framework
- 매우 사용하기 쉬움
- 새로운 폴더 만들기
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에서 가져오기
- 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)
- flask
- flask 설치
- main.py에서 아래와 같이 입력
from flask import Flask
app = Flask("JobScrapper")
app.run("0.0.0.0")
- 세줄의 코드로 웹사이트를 만듦
- 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>< '
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폴더를 들여다보게 함
변수를 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함
댓글남기기