본문 바로가기
Programming/6. Elice AI Track

011_flask 기초 (~7/16)

by @sangseophwang 2021. 7. 18.

@pinterest

아직은 어색한 미래의 친구, 플라스크!

  결론부터 말하자면 이번 주 내내 백엔드 시스템을 이해하느라 꽤 고생했는데, 아직도 뭔가 좀 흐릿한 기분이다. 알듯 말 듯한 이 찝찝한 기분에서 얼른 벗어나고 싶은데, 아마 곧 다가올 개인 프로젝트 시간에 제대로 혼쭐이 나야 내 것으로 체득할 수 있을 것 같다. 우선은 이번 주에 배웠던 이론부터 다시 정리해보면서 다시 감을 잡아봐야겠다.

 

(얼른 리액트 공부하고 싶..)


웹 서버 동작 과정 간단히 이해하기

  • 이 웹 상에는 크게 클라이언트(사용자 / 내 컴퓨터 / 브라우저 등) 와 서버 (클라이언트의 요청을 받아 그 답으로 데이터를 돌려주는 곳)로 분류할 수 있다.
  • 우리가 웹 상에서 검색을 하거나 주소창에 주소를 치고 배너를 클릭하는 행위 등 이 모든 것들이 요청이다.
  • 서버는 그 요청에 HTML, JSON 등 다양한 형태로 데이터를 제공한다.

Flask Framework

더보기

프레임워크란 어떤 결과물을 만들기 위해 제공하는 '틀' 이며 미리 작성된 함수(기능)들을 제공한다.

Flask란 Python을 사용해 웹 서버를 만들 수 있게 도와주는 프레임워크이다.

기능이 많진 않지만 유연하게 확장하기 편리한 특징이 있으며, 이런 형태의 프레임워크를 Micro Framework 라고 부른다.

기본 틀

# 기본 틀

from flask import Flask       # flask 사용하겠습니다.
app = Flask(__name__) 		  # 이제부터 app은 flask 전체를 나타내는 것입니다.
@app.route("/") 			# 주소를 적어줍니다. 여기에 나중에 GET, POST 등의 메소드도 들어옵니다.
def first(): 				  # 함수를 적어줍니다.
    return "hello world"

if __name__== "__main__":     # 파일 이름이 main일 때 app을 실행시킵니다.
    app.run()

render_template

# HTML 연동 - render_template

from flask import Flask,render_template      # html 파일을 넣어주려면 render_template를 import해준다.
app = Flask(__name__)

@app.route("/")
def html():
    return render_template("index.html")     # 이런저런 함수를 적고 render_template로 html을 불러온다.
if __name__== "__main__":
    app.run()

Jinja2

<!-- Jinja2 -->

<html> 
  <head>
    <title> jinja2 </title>
  </head>
  <body>
    {{ data }}
    {% for d in data %}
	  {{ d }} 
    {% endfor %}
  </body>
</html>

<!-- Jinja2는 쉽게 말해서 html에 서버에서 받아온 데이터를 간편하고 효과적으로 보여줄 수 있는 템플릿입니다.-->
<!-- 기본적으로 변수에는 {{ }} 이렇게 중괄호 2개로 사용하지만 for, if문을 사용할 때는 중괄호를 하나 빼고 %를 넣습니다.  -->

Blueprint

# Blueprint

from flask import Blueprint,jsonify
bp = Blueprint('bp',__name__)

@bp.route('/first',methods=['GET'])
def first_route():
   return jsonify('first page')

@bp.route('/second',methods=['GET'])
def second_route():
   return jsonify('second page')
   
# Divide and Conquer !
# app.py 파일은 오로지 서버를 실행하는 역할만 맡기고, 각 기능들을 다른 파일들에 넣어준다.
# 이렇게 함으로써 유지보수에 이점이 있고 기능별로 파일이 나뉘어있기 때문에 확인 및 수정에 좋다.

 

후.. 나머지는 나중에 시간될 때 다시 정리해야겠다 ㅠ 우선은 다음 주에 있을 코딩 테스트 스터디 준비를 위해 자바스크립트 공부를,, 😭

반응형

'Programming > 6. Elice AI Track' 카테고리의 다른 글

013_엘리스 프로젝트가 궁금하신가요?  (0) 2021.09.25
012_엘리스 트랙 톺아보기  (0) 2021.09.09
010_SQL (07/13)  (0) 2021.07.16
009_JavaScript 기초 (7/8-9)  (0) 2021.07.09
008_JavaScript 기초 (7/7)  (0) 2021.07.07

댓글