1. Framework
- 하나의 결과물을 만들기 위해서 제공하는 '틀'
- 미리 작성되어 있는 함수 (라이브러리) 이상의 기능을 제공
2. Flask Framework
- Flask는 Python을 사용해서 웹 서버를 만들 수 있게 도와주는 Web Framwork
- 그 외 Python을 사용하는 Framework
- 다량의 기능을 미리 제공: Django → 사용할 수 있는 기능이 많음
- 기본적인 기능만 제공: Flask, Pyramid, Bottle → 개발이 자유롭다
📍 장점
- 나만의 서버를 쉽게 작성할 수 있음
- 간단한 코드로 빠르게 실행할 수 있음
- 원하는 기능을 유연하게 확장하기 편리
3. Flask 웹 서버 만들기
$ pip3 install flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def elice():
return "hello elice"
if __name__ == "__main__":
app.run()
4. URL을 연결하고 데이터를 화면에 나타내기
- @app.route()는 url을 만들어 줌 → 이를 이용해 API주소와 함수를 연결
- @app.route()와 이어져 있는 함수를 사용해서 HTML과 JSON형식의 데이터를 전달
- JSON형식의 데이터 나타내기
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def elice_json():
my_data = {"name":"elice"}
return jsonify(my_data)
if __name__ == "__main__":
app.run()
📍 HTML형식의 데이터 나타내기
- html을 화면에 전달하기 위해서는 html 파일 필요
- templates폴더에 html파일을 넣어놓으면 flask가 자동으로 찾아서 연결
templates
준비
app.py
준비
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def elice_html():
return render_template("index.html")
if __name__ == "__main__":
app.run()
- Flask에서는 render_template()을 사용하지 않고도 HTML코드 통해 화면 보여 줄 수 있음
@app.route('/')
def hello():
return "<h1>안녕하세요</h1>"
📍 여러가지 url 연결하기
@app.route("URL주소")
- URL 주소 = 우리가 만들어줄 수 있는 url의 주소
- 1개의 @app.route는 1개의 함수와 연결, 여러 개 함수를 가질 수는 있음
- @app.route를 여러 개 사용해서 다양한 url을 만들 수 있음
- @app.route로 API주소를 생성하고 함수와 바인딩을 한 것
- @app.route에 이어진 함수의 이름은 중복 불가능
from flask import *
app = Flask(__name__)
@app.route("/")
def elice():
return jsonify("home")
@app.route("/admin")
def elice_admin():
return jsonify("admin page")
@app.route("/student")
def elice_student():
return jsonify("student Page")
@app.route("/student/<name>")
def elice_user(name):
user = {"name":name}
return jsonify(user)
if __name__== "__main__":
app.run()