๐ ํ์ด์ฌ (Python)/-- ํ๋ผ์คํฌ (Flask)
-
https://infinitt.tistory.com/272 ์ฟ ํค์ ์ธ์ ์ด๋? ์ฟ ํค์ ์ธ์ (cookie session) HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ ๊ฐ์ ๊ฐ์ง์ง ์๋ ํ๋กํ ์ฝ์ด๋ค. ๋ฐ๋ผ์ ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ฟ ํค(cookie) ์ ์ธ์ (session)์ ์ด์ฉํ๋๋ฐ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ํ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ๋งํ.. infinitt.tistory.com * ์ฟ ํค์ ์ ๊ทผํ ๋ flask์์ ์ฟ ํค์ ์ ๊ทผํ ๋๋ request๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. (cookies ์์ฑ) @app.route('/') def home(): username = request.cookies.get('username') * ์ฟ ํค ๊ฐ ์ค์ ํ ๋ ๊ฐ์ ์ค์ ํ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก response ๊ฐ์ฒด์ set_cookie()..
Flask - ์ฟ ํค์ ์ธ์ (Cookie Session) request , secret keyhttps://infinitt.tistory.com/272 ์ฟ ํค์ ์ธ์ ์ด๋? ์ฟ ํค์ ์ธ์ (cookie session) HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ ๊ฐ์ ๊ฐ์ง์ง ์๋ ํ๋กํ ์ฝ์ด๋ค. ๋ฐ๋ผ์ ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ฟ ํค(cookie) ์ ์ธ์ (session)์ ์ด์ฉํ๋๋ฐ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ํ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ๋งํ.. infinitt.tistory.com * ์ฟ ํค์ ์ ๊ทผํ ๋ flask์์ ์ฟ ํค์ ์ ๊ทผํ ๋๋ request๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. (cookies ์์ฑ) @app.route('/') def home(): username = request.cookies.get('username') * ์ฟ ํค ๊ฐ ์ค์ ํ ๋ ๊ฐ์ ์ค์ ํ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก response ๊ฐ์ฒด์ set_cookie()..
2020.05.10 -
uri์ ๋์ ์ถ๊ฐ๋ username์ด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๋ถ๋ถ์ด๋ค. ํํ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, string์ด ์๋ intํ์ด๋, ๊ธฐํ ๋ค๋ฅธํํ๋ก๋ ๋ณํํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. app.py from flask import Flask , render_template app = Flask(__name__) @app.route("/profile/") def profil(username): return render_template(username) if __name__ == "__main__": app.run(host = "127.0.0.1", port=5000, debug = True) home.html user profile search ๊ฒ์ *์ถ๊ฐ์ ์ผ๋ก ๋์ ์ผ๋ก uri๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ค์๋ url_for() ํจ์๋ฅผ..
Flask - ๊ฐ๋จ ์์ : ๋์ URI ์ฌ์ฉํ๊ธฐ get user profileuri์ ๋์ ์ถ๊ฐ๋ username์ด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๋ถ๋ถ์ด๋ค. ํํ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, string์ด ์๋ intํ์ด๋, ๊ธฐํ ๋ค๋ฅธํํ๋ก๋ ๋ณํํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. app.py from flask import Flask , render_template app = Flask(__name__) @app.route("/profile/") def profil(username): return render_template(username) if __name__ == "__main__": app.run(host = "127.0.0.1", port=5000, debug = True) home.html user profile search ๊ฒ์ *์ถ๊ฐ์ ์ผ๋ก ๋์ ์ผ๋ก uri๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ค์๋ url_for() ํจ์๋ฅผ..
2020.05.10 -
HTTP์ ์์ฒญ๊ณผ ์๋ต์ ๊ฐ๋จํ ์์ ๋ก ํ์ด๋ณด์๋ค. from flask import request get_number = request.form.get('get_number') * request HTTP์ Method (GET POST)๋ฅผ ํตํด ๋ค์ด์ค๋ ์์ฒญ์ request๋ผ๋ ์ ์ญ๋ณ์์ ์ ์ฅ๋๋ค. ์ด๋ request.form.get('html์ name์์ฑ') ์ ํตํด ๊ฐ์ ์ป์ ์ ์๋ค. request๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด import๊ฐ ํ์ํ๋ค. ํ์ด์ฌ์์ ๊ฐ์ ์ฒ๋ฆฌํ๋ค, ๋ค์ templates์ผ๋ก ๋ณด๋ผ๋๋ return render_template('index.html' , number1=number1) ์ด๋ฌํ ํ์์ผ๋ก ๋๊ฒจ์ฃผ๋ฉด ๋๋ค. ์๋ฅผ๋ค์ด number1์ด๋ผ๋ ๋ณ์๋ HTML์์ {{number1}} ๋ก..
Flask - ๊ฐ๋จ ์์ : ๋ง์ ๋ฌธ์ ์ ์ถ + ์ฒด์ ํ๊ธฐ (HTTP ์์ฒญ๊ณผ ์๋ต)HTTP์ ์์ฒญ๊ณผ ์๋ต์ ๊ฐ๋จํ ์์ ๋ก ํ์ด๋ณด์๋ค. from flask import request get_number = request.form.get('get_number') * request HTTP์ Method (GET POST)๋ฅผ ํตํด ๋ค์ด์ค๋ ์์ฒญ์ request๋ผ๋ ์ ์ญ๋ณ์์ ์ ์ฅ๋๋ค. ์ด๋ request.form.get('html์ name์์ฑ') ์ ํตํด ๊ฐ์ ์ป์ ์ ์๋ค. request๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด import๊ฐ ํ์ํ๋ค. ํ์ด์ฌ์์ ๊ฐ์ ์ฒ๋ฆฌํ๋ค, ๋ค์ templates์ผ๋ก ๋ณด๋ผ๋๋ return render_template('index.html' , number1=number1) ์ด๋ฌํ ํ์์ผ๋ก ๋๊ฒจ์ฃผ๋ฉด ๋๋ค. ์๋ฅผ๋ค์ด number1์ด๋ผ๋ ๋ณ์๋ HTML์์ {{number1}} ๋ก..
2020.05.10 -
http://34.64.254.101:5000/ ์์ค์ฝ๋ :https://github.com/Youjunyong/Flask_Todo_app Flask๋ฅผ ์ด์ฉํด TODO๋ฅผ ์์ฑํ๋ ์ฑ์ ๋ง๋ค์ด๋ณด์๋ค. 4๊ฐ์ ํ์ด์ง๋ก ๊ตฌ์ฑ๋๊ณ , ๊ธฐ๋ฅ์ ๋ก๊ทธ์ธ, ํ์๊ฐ์ , TODO์ด๋ค. * ๋ก๊ทธ์ธ ์์ด home์ ๋ค์ด๊ฐ์๋์ ํ์ด์ง. *ํ์๊ฐ์ ํ์ด์ง *๋ก๊ทธ์ธ ํ์ด์ง *TODO ํ์ด์ง (1) ํ ์ผ ๋ด์ฉ์ ์ ๋ ฅํ๊ณ , ๊ธฐํ์ bootstrap์ datepicker๋ฅผ ์ด์ฉํ๋ค. ๋ฌ๋ ฅ์ ๋ ์ง๋ฅผ ํด๋ฆญํ๋ฉด ์๋์์ฑ๋๋ ๊ธฐ๋ฅ์ด๋ค. *TODOํ์ด์ง (2) ์ ๋ ฅ๋ ํ ์ผ์์, ํ๋์ ์๋ฃ๋ฅผ ๋๋ฅด๋ฉด ํ๊ทธ๋ฅผ ์ด์ฉํด ์ค์ด ์ณ์ง๋๋ก ์ค์ ํ๋ค. ์๋ฃ ๋ฒํผ๋ ์ญ์ ๋ฒํผ์ผ๋ก ๋ฐ๋๊ฒ ๋ง๋ค์ด, ์ญ์ ๋ฅผ ๋๋ฅด๋ฉด ๋ฆฌ์คํธ๊ฐ ์ญ์ ๋๋ค. (db์์๋) *DB ํ ์ด๋ธ์ 2..
ํ๋ผ์คํฌ (Flask) - todo app ํ ์ผ ๋ฆฌ์คํธ ๊ด๋ฆฌ (api, crud)http://34.64.254.101:5000/ ์์ค์ฝ๋ :https://github.com/Youjunyong/Flask_Todo_app Flask๋ฅผ ์ด์ฉํด TODO๋ฅผ ์์ฑํ๋ ์ฑ์ ๋ง๋ค์ด๋ณด์๋ค. 4๊ฐ์ ํ์ด์ง๋ก ๊ตฌ์ฑ๋๊ณ , ๊ธฐ๋ฅ์ ๋ก๊ทธ์ธ, ํ์๊ฐ์ , TODO์ด๋ค. * ๋ก๊ทธ์ธ ์์ด home์ ๋ค์ด๊ฐ์๋์ ํ์ด์ง. *ํ์๊ฐ์ ํ์ด์ง *๋ก๊ทธ์ธ ํ์ด์ง *TODO ํ์ด์ง (1) ํ ์ผ ๋ด์ฉ์ ์ ๋ ฅํ๊ณ , ๊ธฐํ์ bootstrap์ datepicker๋ฅผ ์ด์ฉํ๋ค. ๋ฌ๋ ฅ์ ๋ ์ง๋ฅผ ํด๋ฆญํ๋ฉด ์๋์์ฑ๋๋ ๊ธฐ๋ฅ์ด๋ค. *TODOํ์ด์ง (2) ์ ๋ ฅ๋ ํ ์ผ์์, ํ๋์ ์๋ฃ๋ฅผ ๋๋ฅด๋ฉด ํ๊ทธ๋ฅผ ์ด์ฉํด ์ค์ด ์ณ์ง๋๋ก ์ค์ ํ๋ค. ์๋ฃ ๋ฒํผ๋ ์ญ์ ๋ฒํผ์ผ๋ก ๋ฐ๋๊ฒ ๋ง๋ค์ด, ์ญ์ ๋ฅผ ๋๋ฅด๋ฉด ๋ฆฌ์คํธ๊ฐ ์ญ์ ๋๋ค. (db์์๋) *DB ํ ์ด๋ธ์ 2..
2020.02.22 -
*์ง๋ ํฌ์คํ :https://infinitt.tistory.com/113?category=1071293 ํ๋ผ์คํฌ (Flask) - ํ์๊ฐ์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ 2 (WTF ์ด์ฉํ๊ธฐ) *Flask - WTF ์ง๋ ํฌ์คํ ๋๋ ํ์๊ฐ์ ์ ์ ๋ ฅํ์ง ์์๋๊ฒ์ด ์๋์ง, ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋๋ฒ ์ ๋ ฅํ ๋ ๋ค๋ฅด๊ฒ ์ ๋ ฅํ์ง ์์๋์ง if๋ฌธ์ ์ฌ์ฉํ์ฌ ์๋์ ์ผ๋ก Validation์ ํ์์ต๋๋ค. ์ด๋ฒ์๋ WTF๋ฅผ ์ด์ฉํ์ฌ.. infinitt.tistory.com ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)์ ์๋ฒ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ฟ ํค(Cookie)์ ์ธ์ (session). ์ฟ ํค๋ ์๊ฐ์ด ์ง๋๋ฉด ์๋ฉธํ๊ณ , ์๋ฒ์ ์์์ ํ์ฉํ์ง ์๊ณ ํด๋ผ์ด์ธํธ์ชฝ์ ์ ์ฅ๋๋ค. ๋ฐ๋ผ์ ๋ก๊ทธ์ธ๊ณผ ๊ฐ์ ๋ณด์๊ธฐ๋ฅ์ ํ์ฉํ ๋๋ ์ธ์ ์ ์ฌ์ฉํ๋ค. ํ๋ผ์คํฌ์์๋ ์ธ์ ์ ๋์ ๋๋ฆฌํํ๋ก..
ํ๋ผ์คํฌ (Flask) ๋ก๊ทธ์ธ , ๋ก๊ทธ์์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (session ํ์ฉ)*์ง๋ ํฌ์คํ :https://infinitt.tistory.com/113?category=1071293 ํ๋ผ์คํฌ (Flask) - ํ์๊ฐ์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ 2 (WTF ์ด์ฉํ๊ธฐ) *Flask - WTF ์ง๋ ํฌ์คํ ๋๋ ํ์๊ฐ์ ์ ์ ๋ ฅํ์ง ์์๋๊ฒ์ด ์๋์ง, ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋๋ฒ ์ ๋ ฅํ ๋ ๋ค๋ฅด๊ฒ ์ ๋ ฅํ์ง ์์๋์ง if๋ฌธ์ ์ฌ์ฉํ์ฌ ์๋์ ์ผ๋ก Validation์ ํ์์ต๋๋ค. ์ด๋ฒ์๋ WTF๋ฅผ ์ด์ฉํ์ฌ.. infinitt.tistory.com ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)์ ์๋ฒ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ฟ ํค(Cookie)์ ์ธ์ (session). ์ฟ ํค๋ ์๊ฐ์ด ์ง๋๋ฉด ์๋ฉธํ๊ณ , ์๋ฒ์ ์์์ ํ์ฉํ์ง ์๊ณ ํด๋ผ์ด์ธํธ์ชฝ์ ์ ์ฅ๋๋ค. ๋ฐ๋ผ์ ๋ก๊ทธ์ธ๊ณผ ๊ฐ์ ๋ณด์๊ธฐ๋ฅ์ ํ์ฉํ ๋๋ ์ธ์ ์ ์ฌ์ฉํ๋ค. ํ๋ผ์คํฌ์์๋ ์ธ์ ์ ๋์ ๋๋ฆฌํํ๋ก..
2020.02.08 -
Css ํ์ผ, Jsํ์ผ ๋ฑ Staticํ์ผ์ ์ ์ฉํ๋ ค๋ฉด ํด๋๋ฅผ ์์ฑํด์ผํฉ๋๋ค. Flaskํด๋ โ โโโ templates (ํด๋) โ โโโ register.html โ โโโ static โ โโโ app.py (์คํํ์ผ) โโโ db.sqlite (์ด๊ฑด ์๋์ผ๋ก ์์ฑ๋จ) โโโ models.py staticํด๋๋ฅผ ๋ง๋ค์์ผ๋ฉด, JS์ CSSํด๋๋ฅผ ๋ง๋ค์ด ์ค๋๋ค. (ํด๋๋ค์ ์ด๋ฆ์ ์๊ด์์ต๋๋ค.) ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ ๋ง๋ ํ์ผ๋ค์ ๋ฃ๊ณ ๋ค์ ํจ์๋ฅผ ํตํด ์ ์ฉ์ํต๋๋ค. url_for('ํด๋์ด๋ฆ', filename='ํ์ผ์ด๋ฆ')
ํ๋ผ์คํฌ (Flask) Static ํ์ผ ์ ์ฉํ๊ธฐ. (CSS, JS) url_forCss ํ์ผ, Jsํ์ผ ๋ฑ Staticํ์ผ์ ์ ์ฉํ๋ ค๋ฉด ํด๋๋ฅผ ์์ฑํด์ผํฉ๋๋ค. Flaskํด๋ โ โโโ templates (ํด๋) โ โโโ register.html โ โโโ static โ โโโ app.py (์คํํ์ผ) โโโ db.sqlite (์ด๊ฑด ์๋์ผ๋ก ์์ฑ๋จ) โโโ models.py staticํด๋๋ฅผ ๋ง๋ค์์ผ๋ฉด, JS์ CSSํด๋๋ฅผ ๋ง๋ค์ด ์ค๋๋ค. (ํด๋๋ค์ ์ด๋ฆ์ ์๊ด์์ต๋๋ค.) ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ ๋ง๋ ํ์ผ๋ค์ ๋ฃ๊ณ ๋ค์ ํจ์๋ฅผ ํตํด ์ ์ฉ์ํต๋๋ค. url_for('ํด๋์ด๋ฆ', filename='ํ์ผ์ด๋ฆ')
2020.02.07