728x90

코딩/flask 8

[flask+jinja2] 반올림하기, round 필터

서버에서 130.456 실수를 담은 데이터 data를 전송했다고 가정하겠다. 넘어온 숫자를 반올림해서 보여주고 싶을 때는 round 필터를 사용하면 된다. 참고로 jinja2에서 필터란 데이터를 다른 형태로 바꿔주는 역할을 하는 것을 지칭한다. {{data|round}} 서버에서 넘어온 130.456은 이제 130.0으로 보여질 것이다. 정수로 반올림이 되었지만 뒤에 .0이 붙은 것이 불편한 사람들이 있다면, int 필터를 추가하여 정수로 보여지게 하면 된다. {{data|round|int}} 130 만약 소수점 아래 두번째 자리까지 반올림하고 싶다면 round(2)를 사용하면 된다. {{data|round(2)}} 130.46으로 표현될 것이다. 참고자료 [1] https://stackoverflow...

코딩/flask 2022.03.19

[flask+jinja2] 서버에서 받은 html 요소가 html 문서에서 제대로 표현되게 하려면?

@app.route("/index") def index(): data = "안녕하세요.반갑습니다." return render_template('index.html', data=data) 위와 같이 서버에서 html 요소를 전달한 것을 jinja2를 통해 html 문서에서 표현해야 하는 상황인 경우에는 다음과 같이 safe라는 필터를 걸어줘야 한다. {{data|safe}} 안녕하세요. 반갑습니다. safe 필터를 걸어주면 autoescape가 비활성된다. 그렇지 않고 {{data}}로 사용하면 p 태그를 인식하지 못하고 그냥 문자열로 받아들인다. {{data}} 안녕하세요.반갑습니다. 주의할 것은 safe 필터는 개발자가 신뢰할 수 있는 데이터가 표출되는 곳에 대해서만 사용해야 한다는 점이다. 그렇지 않..

코딩/flask 2022.02.06

[flask+jinja2] break 사용하기

jinja는 서버에서 보낸 데이터를 html 문서에서 나타낼 때 쓰이는 일종의 템플릿 언어다. 문법은 전반적으로 파이썬과 유사한 부분이 많기 때문에 사용법을 어렵지 않게 익힐 수 있다. 오늘은 for문을 사용하다가 break를 사용할 일이 생겨서 사용법을 정리해 본다. break는 보통 for문과 같은 반복문에서 중도 탈출할 때 사용되는 문법이다. 이 글을 읽는 분들은 break의 용도는 알고 계실 것이라 생각하기에 자세한 설명은 생략하겠습니다. 우선 jinja에서 break를 사용하려면 extension을 추가해줘야 사용할 수 있다. flask 프레임워크를 사용하고 있다면 app = Flask(__name__)과 같은 코드가 파이썬 문서 상단에 있을 것이다. 그 코드 아래에 다음과 같은 코드를 추가해줘..

코딩/flask 2022.02.05 (2)

[flask] rows에서 각 row가 몇 번째 것인지 보여주고 싶다면?

DB에서 여러 행들을 읽은 것을 html 문서에서 받았다고 가정하겠습니다. 여러 행 중 하나의 행씩 for문으로 보여줄 때 만약 몇번째 행인지도 함께 보여주고 싶다면 {{ loop.index }}를 활용하시면 됩니다. {% for row in rows %} {{ loop.index }}번째 행: {{row[0], row[1], row[2]}} {% endfor %} 저는 개인적으로 유용하게 많이 사용하고 있는 친구니 필요하신 분은 한번 활용해보세요.

코딩/flask 2021.05.15

[flask] 구름 IDE의 항상 켜두기 기능을 이용해서 flask 웹 서버 구동하기

오늘은 구름 IDE의 항상 켜두기 기능을 이용해서 flask 웹 서버를 구동하는 방법에 대해서 살펴보도록 하겠습니다. 참고로 저는 이 방식을 이용해서 다음과 같은 웹 사이트를 구동시켰습니다. 이미지를 업로드하면 이미지에서 색을 빼줘서 색칠 공부 도안을 만들어주는 웹 사이트입니다. edge-detection-iycdd.run.goorm.io/ 우리 아이 색칠 공부 edge-detection-iycdd.run.goorm.io 자! 그럼 이제 시작해보겠습니다. 먼저 구름 IDE에서 컨테이너를 하나 생성해주세요. 소프트웨어 스택에서 Flask를 선택해주세요. 컨테이너 생성을 마치신 분들은 컨테이너 설정 버튼을 클릭한 후에 컨테이너 항상 켜두기를 해줍니다. 이 항상 켜두기 기능은 PREMINUM 플랜(유료)을 사..

코딩/flask 2021.03.29

[flask+jinja2] 행 개수 세기, 문자열 길이 산출하기, length 필터

1. 행 개수 세기 어떤 데이터베이스로부터 읽어낸 행들을 rows라는 이름으로 flask 템플릿에 전달한 상황이라고 가정하겠다. 이 상황에서 rows의 행 갯수를 세려면 length 필터를 사용하면 된다. {{ rows|length }} 만약 data가 10개의 행을 갖고 있다면, 10이 출력될 것이다. 2. 문자열 길이 산출하기 서버에서 전송한 문자열의 길이 또한 length 필터로 알아낼 수 있다. 만약 서버에서 name = 'bskyvision'을 보낸 상황이라면, {{ name|length }} 은 10이 될 것이다. (이 글은 2022-03-15에 마지막으로 수정되었습니다) 참고자료 [1] stackoverflow.com/questions/17739264/count-number-of-rows-i..

코딩/flask 2020.12.18

[flask+jinja2] 중복되는 html 처리, {% include %} 사용

웹사이트를 만들다 보면, html에서 중복되는 코드가 발생하기 마련입니다. 특히 상단 헤더나 하단 푸터 같은 부분은 어떤 페이지든 관계없이 동일한 부분들이기 때문입니다. 오늘은 flask로 웹사이트를 만드는 경우 중복되는 html을 어떻게 처리하는지에 대해서 다뤄보고자 합니다. flask의 경우 jinja2를 템플릿 언어로 사용하는데, {% include %}를 활용하면, 중복되는 html을 처리할 수 있습니다. 사용법은 다음과 같습니다. 중복되는 부분들을 또 다른 html 문서로 각각 작성한 후, 중복되는 부분에는 다음과 같이 한줄의 코드로 대체해주는 것입니다. {% include 'head.html' %} {% include 'header.html' %} {% include 'nav.html' %} ..

코딩/flask 2020.12.09 (6)

[flask] flask로 웹 어플리케이션 만들기 (코로나19 오늘 확진자 수 알림)

지난 시간에 코로나 일일 확진수를 Beautiful Soup 라이브러리를 활용해서 웹 스크레이핑(scraping)하는 법에 대해서 살펴봤습니다. 오늘은 Flask를 활용해서 웹 스크레이핑 한 결과를 제공하는 웹 서버를 만들어보겠습니다. 참고로 지금 사용하고 있는 제 노트북을 서버 컴퓨터로 삼을 것입니다. 우선 flask 모듈을 설치해줘야 합니다. 명령프롬프트 또는 터미널에 pip install flask로 설치해주세요. 그리고 아래와 같은 파이썬 스크립트를 하나 준비합니다. 이름은 test.py와 같이 알아서 정해주세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from flask import Flask from urllib import reques..

코딩/flask 2020.10.08