-
nomard) python기초 (Flask로 웹페이지 만들기)Python 2023. 3. 10. 11:03
https://nomadcoders.co/python-for-beginners
1) Flask 다운로드, 서버 만들기
vscode의 터미널에서 pip install Flask
Flask 다운로드 후
- flask 로 부터 Flask를 import해서 사용할 수 있다.
app = Flask("JobScrapper") -> Flask 선언 app.run("0.0.0.0") -> Flask를 실행해서 괄호 속의 ip를 가진 서버를 만든다. ( 0.0.0.0 ) 은 누구나 접근 가능 @app.route("/") def home(): return "hey there!" -> 제일 위의 decorator가 함수를 decorating 하고 있을 때만 동작한다 .route("/") 의 뜻은 도메인 이후에 나오는 / 밑으로 아무 것도 없다는 뜻으로 홈페이지의 홈 화면이라고 할 수 있다.
2 _ HTML 적용시키기 ( rendering 하기 )
Flask는 항상 HTML 파일을 templates 폴더 내부에 넣어야한다 ( 자동으로 해당 폴더를 찾는다, 폴더의 위치도 main.py와 동일해야함. )
1) rendering 설정하기
- main.py 파일에 render_template 를 import 했다. 해당 요소가 template폴더에 들어있는 html 파일을 가지고 올 것이다.
home() 함수의 return 값으로 render_template("home.html", name="nico") 가 있다.
해당 부분은 home.html을 현제 서버에 불러와서 나타내겠다는 뜻이고 동시에 name 이라는 변수에 nico 라는
문자열을 저장시켜서 home.html을 불러올 때 같이 나타내겠다는 뜻이다.
render_template("HTML.html" , rendering 하고싶은 데이터 , ... ) -> HTML 파일을 불러오면서 동시에 rendering 하고싶은 데이터를 같이 보낼 수 있다. rendering 할 데이터는 몇개가 되던 상관 없다.
- main.py 에서 rendering한 name 변수는 html에서 {{name}} 으로 불러올 수 있다.
2) form 설정하기
- home.html 문서에 검색어를 입력할 form 내부에 input과 button을 만들었다.
- input 칸에 python을 넣고 search를 누르면 URL에 ?keyword=python이 나온다. 이것을 이전에 만들었던 scrapper에서 사용했던 것 처럼 이용할 것이다.
** input 속성중에 name="keyword" 때문에 ?keyword=python 형태로 URL에 나타난 것이다.
form의 속성중에 action="/텍스트" 를 넣을 경우 form에서 submit을 했을 때 도메인/텍스트 로 이동한다
form태그에 action="/search" 속성이 있다면 submit 했을 때 http://www.domain.com/search 로 이동한다.
** python을 입력하고 search 했더니 주소창에 /search?keyword=python이 생겼다.
form의 action과 input의 name 속성의 영향이다.
- 이 기능을 이용해서 main.py에 새로운 데코레이터를 만들 수 있다.
명령어를 넣어주면, input에 값을 넣고 Search 버튼을 누른 이용자는 새로운 페이지로 이동할 수 있다.
3) input으로부터 arguments 받기
- input에 python을 입력하고 submit 했을 때 어떤 arguments가 request로 들어오는지 알아보자.
- 결과로는 input의 name인 keysowrd와 입력했던 python이 나왔다.
- 앞서 만들었던 extractors 들을 import해서 search의 결과로 쓸 keyword와 jobs를
search.html 에 같이 첨부해서 보냈다.
'Python' 카테고리의 다른 글
데이터 타입(자료형 검사) (0) 2023.03.18 input 자료형 검증 ( try - excpt ) (0) 2023.03.16 nomard) python기초 ( ERROR 모음 ) (0) 2023.03.10 nomad) python 기초 (2) (0) 2023.03.06 nomard) python 기초 (1) (0) 2023.03.06