웹개발/Flask 17

URL Building, url_for(), url_for 쓰는 이유, redirect

url_for url_for는 flask에서 제공하는 함수이다. 구조는 아래와 같다. url_for(연결할 함수이름, 전달할 인자값) URL을 하드코딩하는 것보다 url_for()을 이용하여 만들면 여러 장점이 많다. 표현이 자세하고, 이해하거나 기억하기 쉬우며, 여러 상황에서 유동적으로 작동한다. test_request_context() 함수로 플라스크에서 url_for()을 이용하면, 실제 주소가 어떻게 표현되는지 볼 수 있다. url_for()를 사용하기 위해 flask에서 url_for, redirect를 import한다. 실제 코드를 살펴보자. from flask import Flask, url_for, redirect app=Flask(__name__) @app.route("/a") def m..

웹개발/Flask 2022.12.17

JSONDecodeError: Expecting Value: Line 1 column 1 (char 0) 에러

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 에러가 발생한 이유는 아래와 같다. 1. JSON 파일의 데이터가 없다. 실제 Json file을 열었을 때 데이터가 없을 경우이다. API를 불러왔다면 API의 주소가 맞는지, 데이터를 직접 가져온다면 경로가 옳은지를 확인하자. 2. " " 따옴표를 유의하자. JSON이나 JavaScript는 파이썬의 딕셔너리 데이터타입과 비슷한 형식을 띈다. 딕셔너리에서 key, value의 값이 string이라면 반드시 " " 쌍따옴표로 묶여야 한다. 마찬가지이다. JSON에서도 반드시 쌍따옴표를 써야한다. 이를 지키지 않았다면 에러가 났을 것이다. 3. 파일형식이 XML일 ..

웹개발/Flask 2022.11.17

flask, url_for, URL 구축하기

url_for url_for을 이용하여 하이퍼링크를 만들어보자. 홈으로 1) 기본: 2) {{ }} 안에 url_for함수 넣기 3) url_for 함수의 인자로 라우트 함수 넣기 홈으로 4)url_for 함수 안에 키워드 매개변수 넣기 main.py import requests app= Flask(__name__) @app.route('/') def home(num): return "hello" @app.route('/blog') def my_blog(): blog_url = "https://api.npoint.io/856de95eec43713720cd" response = requests.get(url=blog_url) print(response.raise_for_status()) datas = re..

웹개발/Flask 2022.11.17

여러 문장 진자 코드, for, if문 jinja, npoint, Jinja, {{ }}, {% %}, endfor, endif, npoint, json API

Jinja 마크업 언어를 배워보자. 지난 시간에는 한 줄로 작성하는 방법 ' {{ }} '을 배웠다면, 오늘은 for문과 if문처럼 여러 줄로 된 진자 코드를 작성하는 방법을 배우도록 하겠다. npoint 웹사이트 이를 위해 npoint 웹사이트를 배울 것이다. URL: npoint.io npoint는 자신의 json데이터로 API를 만들 수 있는 사이트이다. 로그인, 회원가입, 인증키가 필요 없어 편리하다. 1) Json bin 생성하기 create JSON Bin을 클릭한다. 2) 데이터 입력하기 그리고 우리는 for문을 돌릴 것이므로, [ ] 리스트를 추가해준다. [ { "id": 1, "title": "플라스크", "subtitle": "플라스크 사용 방법", "body": "플라스크 설치, 객체..

웹개발/Flask 2022.11.17

flask, Jinja 템플레이팅 언어, API 결합, title(), <>, 변수

Jinja 템플레이팅 언어와 API를 결합한 문제를 해결해보자. 이를 위해 두 웹사이트를 소개한다. 1. agify.io 위 사이트는 이름을 입력하면 나이를 예측해주는 API이다. 인증키, 회원가입이 필요 없어서 바로 api 주소를 가져와 사용하면 된다. https://api.agify.io/?name= 데이터는 아래와 같이 Json 형태로 받는다. age 값을 가져오기 위해 아래의 코드를 사용한다. import requests response = requests.get(url="https://api.agify.io/?name="+name) data = response.json() age = data['age'] 또는 import requests URL = f"https://api.agify.io/?na..

웹개발/Flask 2022.11.17