아직은 어색한 미래의 친구, 플라스크!
결론부터 말하자면 이번 주 내내 백엔드 시스템을 이해하느라 꽤 고생했는데, 아직도 뭔가 좀 흐릿한 기분이다. 알듯 말 듯한 이 찝찝한 기분에서 얼른 벗어나고 싶은데, 아마 곧 다가올 개인 프로젝트 시간에 제대로 혼쭐이 나야 내 것으로 체득할 수 있을 것 같다. 우선은 이번 주에 배웠던 이론부터 다시 정리해보면서 다시 감을 잡아봐야겠다.
(얼른 리액트 공부하고 싶..)
웹 서버 동작 과정 간단히 이해하기
- 이 웹 상에는 크게 클라이언트(사용자 / 내 컴퓨터 / 브라우저 등) 와 서버 (클라이언트의 요청을 받아 그 답으로 데이터를 돌려주는 곳)로 분류할 수 있다.
- 우리가 웹 상에서 검색을 하거나 주소창에 주소를 치고 배너를 클릭하는 행위 등 이 모든 것들이 요청이다.
- 서버는 그 요청에 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 |
댓글