๐ฑ
220810(์)
August 10, 2022
๐ชด ์ฑ์ฅ์ผ์ง
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋
python
Flask
ํ์ด์ฌ ์น ํ๋ ์์ํฌ๋ก, ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ธฐ ์ํด ํ์ํ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ์ ๊ณต
flask ์๋ฒ๋ฅผ ๋ง๋ค ๋ ๋ณดํต ์๋์ ๊ฐ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง
project--.venv
ใดstatic
ใดtemplates
ใดapp.py
- .venv : ๊ฐ์ํ๊ฒฝ ํด๋
- static : ์ด๋ฏธ์ง, css ๋ฑ์ ๋ด์๋๋ ํด๋
- templates : HTML ํ์ผ์ ๋ด์๋๊ณ ๋ถ๋ฌ์ค๋ ํด๋
- app.py : flask ์๋ฒ ๊ตฌ๋ ํ์ผ
app.py์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
@app.route('/mypage')
def mypage():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
GET๊ณผ POST
GET
- ํต์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ
์กฐํ(Read)
์์ฒญ ์ - URL ๋ค์ ?(query)๋ฅผ ๋ถ์ด๊ณ ๊ทธ ๋ค์ key=value ํํ๋ก ์ ๋ฌ
- ex) google.com?q=์ฌ๋ง
POST
- ํต์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ
์์ฑ(Create)
,๋ณ๊ฒฝ(Update)
,์ญ์ (Delete)
์์ฒญ ์ - GET์ฒ๋ผ URL์ ๋ณด์ด๋ ๊ฒ์ด ์๋ HTML body์ key:value ํํ๋ก ์ ๋ฌ
๐ํด๋ผ์ด์ธํธ(Front)์ ์๋ฒ(Back)๐
ํด๋ผ์ด์ธํธ -> request(์์ฒญ)
-> ์๋ฒ
์๋ฒ -> response(์๋ต)
-> ํด๋ผ์ด์ธํธ
-
ํด๋ผ์ด์ธํธ์ชฝ ์ฝ๋ ๊ตฌ์ฑ
- ๋ณด๋ด๋ ์์ฒญ ์ข ๋ฅ
- ์์ฒญ ์ข ๋ฅ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ
- ์์ฒญ ์ฑ๊ณต ์ ์ฒ๋ฆฌํ ๊ฒ
$.ajax({ type: 'POST', // 1. ๋ณด๋ด๋ ์์ฒญ ์ข ๋ฅ url: '/practice', data: { name_give: '์ด๋ค ๋ฐ์ดํฐ' }, // 2. ํด๋ผ์ด์ธํธ์ชฝ ๋ฐ์ดํฐ ex) ๋ก๊ทธ์ธ ์ ์์ด๋, ๋น๋ฐ๋ฒํธ success: function (response) { // 3. ์์ฒญ ์ฑ๊ณต ํ ๋ฐ์ ์๋ต์ผ๋ก ์ด๋ค ๊ฑธ ํ ์ง console.log(response); }, });
-
์๋ฒ์ชฝ ์ฝ๋ ๊ตฌ์ฑ
- ์์ฒญ ์ข ๋ฅ ๊ตฌ๋ถ
- ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ผ๋ผ์ผ๋ผ ํ ์ง
@app.route('/practice', methods=['POST']) # 1. ์์ฒญ ์ข
๋ฅ ๊ตฌ๋ถ
def prac_post():
name_receive = request.form['name_give'] # ํด๋ผ์ด์ธํธ์์ ๋ณด๋ธ '์ด๋ค ๋ฐ์ดํฐ'
print(name_receive) # 2. ์ฌ๊ธฐ์ ์ด์ ๋ฐ์ ๋ฐ์ดํฐ ๋ฐ DB ๋ฐ์ดํฐ๋ก ์ผ๋ผ์ผ๋ผ
return jsonify({'result':'success', 'msg': '์ด ์์ฒญ์ POST!'}) # ์๋ต ๋ณด๋