๐ ํ์ด์ฌ (Python)
-
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ ํ๋ค๋ณด๋ฉด ๋ก์ง๊ณผ ๋์ถ๋๋ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง๋ง, ์๊ฐ๋ณต์ก๋ ๋๋ฌธ์ ์ ๋จน๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ํ์คํ ์ ๋ ฅ๊ฐ๋ค์ด ๋ง์ผ๋ฉด ๋ง์์๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํด์ผํ ๊ฒ๊ฐ๋ค. https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt ์ด๊ณณ์ ๊ฐ๋ฉด ์จ๊ฐ ์ฐ์ฐ๋ค์ ๋ํ ์๊ฐ๋ณต์ก๋๊ฐ ์๋ค. ์์ฃผ ์ฐ๋๊ฒ๋ค๋ง ์ ๋ฆฌํด๋ณด๋ฉด Python์ List ์ฐ์ฐ์ ๋ํ ์๊ฐ๋ณต์ก๋ Operation ex BigO Notes Index arr[i] O(1) ๊ทธ๋ฅ ๊ฐ์ ์ ๊ทผ Length len(arr) O(1) Append arr.append(4) O(1) Pop arr.pop() O(1) Slice arr[a:b] O(b-a) ์๋ฅผ ๊ธธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค Extend arr.e..
(Python) ํ์ด์ฌ - list, Dict์ ๋ฉ์๋ ์๊ฐ๋ณต์ก๋์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ ํ๋ค๋ณด๋ฉด ๋ก์ง๊ณผ ๋์ถ๋๋ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง๋ง, ์๊ฐ๋ณต์ก๋ ๋๋ฌธ์ ์ ๋จน๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ํ์คํ ์ ๋ ฅ๊ฐ๋ค์ด ๋ง์ผ๋ฉด ๋ง์์๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํด์ผํ ๊ฒ๊ฐ๋ค. https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt ์ด๊ณณ์ ๊ฐ๋ฉด ์จ๊ฐ ์ฐ์ฐ๋ค์ ๋ํ ์๊ฐ๋ณต์ก๋๊ฐ ์๋ค. ์์ฃผ ์ฐ๋๊ฒ๋ค๋ง ์ ๋ฆฌํด๋ณด๋ฉด Python์ List ์ฐ์ฐ์ ๋ํ ์๊ฐ๋ณต์ก๋ Operation ex BigO Notes Index arr[i] O(1) ๊ทธ๋ฅ ๊ฐ์ ์ ๊ทผ Length len(arr) O(1) Append arr.append(4) O(1) Pop arr.pop() O(1) Slice arr[a:b] O(b-a) ์๋ฅผ ๊ธธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค Extend arr.e..
2021.08.19 -
* ๋ฌธ์ ์กฐ๊ฑด. 1. ์ํ ํ ์ด๋ธ, ์ฃผ๋ฌธ ํ ์ด๋ธ์ ์์ฑ 2. ์ํ ํ ์ด๋ธ์ ์ํ๋ค์ ์ฝ์ ํ ๊ฒ 3. print์ input์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ํ๋ฒํธ์ ์ฃผ๋ฌธ ์๋์ ์ ๋ ฅ๋ฐ๊ธฐ. 4. ์ ๋ ฅ๋ฐ์ ์ฃผ๋ฌธ์ ๋ณด๋ฅผ ์ฃผ๋ฌธ ํ ์ด๋ธ์ ์ ์ฅํ ๊ฒ. 5. db์ ์ ์ฅ๋ ์ฃผ๋ฌธ ํ ์ด๋ธ์ ๋ชฉ๋ก์ ์ถ๋ ฅํ ๊ฒ. python import sqlite3 connect = sqlite3.connect('al.sqlite', isolation_level=None) c = connect.cursor() color = ['red', 'blue'] size = ['S', 'M', 'L'] goods_code = ['T8081', 'T8082'] product_list = [] order_list = [] c.execute("CREATE TABLE order..
sqlite) ์์ - ์ํ๊ณผ ์ฃผ๋ฌธ ํ ์ด๋ธ CRUD* ๋ฌธ์ ์กฐ๊ฑด. 1. ์ํ ํ ์ด๋ธ, ์ฃผ๋ฌธ ํ ์ด๋ธ์ ์์ฑ 2. ์ํ ํ ์ด๋ธ์ ์ํ๋ค์ ์ฝ์ ํ ๊ฒ 3. print์ input์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ํ๋ฒํธ์ ์ฃผ๋ฌธ ์๋์ ์ ๋ ฅ๋ฐ๊ธฐ. 4. ์ ๋ ฅ๋ฐ์ ์ฃผ๋ฌธ์ ๋ณด๋ฅผ ์ฃผ๋ฌธ ํ ์ด๋ธ์ ์ ์ฅํ ๊ฒ. 5. db์ ์ ์ฅ๋ ์ฃผ๋ฌธ ํ ์ด๋ธ์ ๋ชฉ๋ก์ ์ถ๋ ฅํ ๊ฒ. python import sqlite3 connect = sqlite3.connect('al.sqlite', isolation_level=None) c = connect.cursor() color = ['red', 'blue'] size = ['S', 'M', 'L'] goods_code = ['T8081', 'T8082'] product_list = [] order_list = [] c.execute("CREATE TABLE order..
2020.07.22 -
* ํฌ๋กค๋ง (crawling) ์กฐ์ง์ , ์๋ํ๋ ๋ฐฉ๋ฒ์ ํตํ์ฌ ์น์ ํ์ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ํฌ๋กค๋ฌ(crawler)๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ํฌ๋กค๋ง์ , ํฌ๋กค๋ฌ๊ฐ ํน์ ๊ท์น์ ๊ฐ์ง๊ณ ์ฌ๋ฌ ์ฌ์ดํธ์ ํ์ด์ง๋ฅผ ํ์ํ๋ฉฐ ์์งํ๊ณ ๋ถ๋ฅํ๋๊ฒ์ ๋งํ๋ค. ํฌ๋กค๋ง๋ ์คํฌ๋ํ์ ์ผ์ข ์ด๋ค(์คํฌ๋ํ์ด ๋ ํฐ๋ฒ์๋ฅผ ํฌํจํ๋ ์๋ฏธ) * ์คํฌ๋ํ (scraping) ์น์ผ๋ก ํน์ ์ง์ง ์์ผ๋ฉฐ, ๋ชจ๋ ์์ค๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์ํ๋ ํํ๋ก ๊ฐ๊ณตํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ๋ผ์ ํฌ๋กค๋ง๊ณผ ๋น์ทํ ์๋ฏธ์ด๋ฉฐ ๊ตฌ๋ถํ๊ธฐ ์ด๋ ต์ง๋ง ์คํฌ๋ํ์ด ๋ ํฐ ๋ฒ์๋ฅผ ๊ฐ์ง๋ฉฐ, ํฌ๋กค๋ง๋ ์คํฌ๋ํ์ ํฌํจ๋๋ ๋จ์ด๋ผ๊ณ ํ๋ค. * ํฌ๋กค๋ง์์ ์ฃผ์ํ ๊ฒ ์๋ฒ(server)์ ์ ์ฑ ์ด ํ์ฉํ๋ ๋ฒ์ ๋ด์์๋ง ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ( ํฌ๋กค๋ง์์ ์๋ฒ์ ๋ฐ์๋๋ ๋ถํ ๋ผ๋๊ฐ(..
ํฌ๋กค๋ง , ์คํฌ๋ฉํ ์ด๋ ? ( robots.txt ์ ๋ป)* ํฌ๋กค๋ง (crawling) ์กฐ์ง์ , ์๋ํ๋ ๋ฐฉ๋ฒ์ ํตํ์ฌ ์น์ ํ์ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ํฌ๋กค๋ฌ(crawler)๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ํฌ๋กค๋ง์ , ํฌ๋กค๋ฌ๊ฐ ํน์ ๊ท์น์ ๊ฐ์ง๊ณ ์ฌ๋ฌ ์ฌ์ดํธ์ ํ์ด์ง๋ฅผ ํ์ํ๋ฉฐ ์์งํ๊ณ ๋ถ๋ฅํ๋๊ฒ์ ๋งํ๋ค. ํฌ๋กค๋ง๋ ์คํฌ๋ํ์ ์ผ์ข ์ด๋ค(์คํฌ๋ํ์ด ๋ ํฐ๋ฒ์๋ฅผ ํฌํจํ๋ ์๋ฏธ) * ์คํฌ๋ํ (scraping) ์น์ผ๋ก ํน์ ์ง์ง ์์ผ๋ฉฐ, ๋ชจ๋ ์์ค๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์ํ๋ ํํ๋ก ๊ฐ๊ณตํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ๋ผ์ ํฌ๋กค๋ง๊ณผ ๋น์ทํ ์๋ฏธ์ด๋ฉฐ ๊ตฌ๋ถํ๊ธฐ ์ด๋ ต์ง๋ง ์คํฌ๋ํ์ด ๋ ํฐ ๋ฒ์๋ฅผ ๊ฐ์ง๋ฉฐ, ํฌ๋กค๋ง๋ ์คํฌ๋ํ์ ํฌํจ๋๋ ๋จ์ด๋ผ๊ณ ํ๋ค. * ํฌ๋กค๋ง์์ ์ฃผ์ํ ๊ฒ ์๋ฒ(server)์ ์ ์ฑ ์ด ํ์ฉํ๋ ๋ฒ์ ๋ด์์๋ง ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ( ํฌ๋กค๋ง์์ ์๋ฒ์ ๋ฐ์๋๋ ๋ถํ ๋ผ๋๊ฐ(..
2020.05.26 -
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