서버와 클라이언트의 개념
- 서버 : 네트워크로 연결된 컴퓨터 중 데이터를 제공하는 쪽
- 클라이언트 : 서버에 데이터를 요청하고 받아 사용하는 쪽
우리는 같은 컴퓨터에 서버를 만들고 요청도 함. → 클라이언트 =서버 "로컬 개발환경"
https://better-together.tistory.com/60
쉽게 이해하는 네트워크 4. 서버, 클라이언트와 웹 서비스 (ft. 비즈니스 로직과 사용자 인터페이
서버와 클라이언트의 정의 및 서버의 종류 IT란? IT의 핵심은 ① 네트워크를 통해 ② 컴퓨터와 컴퓨터가 데이터를 주고받는 것입니다. IT에 대해 자세히 → IT란? 네트워크의 구성 포스팅에서 살펴
better-together.tistory.com
Python Library
- Flask : (프레임워크) 서버를 구동시켜주는 편한 코드 모음. like jquery, 부트스트랩처럼 남이 짜놓은거 걍 갖다 쓰는거임.
from flask import Flask
app = Flask(__name__)
@app.route('/') #('/)로 URL을 나눌 수 있음.
def home():
return 'This is Home!'
@app.route('/mypage') #url별로 함수명이 같거나 route('/')내의 주소가 같으면 안됨.
def mypage():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
- requests : API로부터 데이터 .GET / .POST / .PUT / .DELETE 등등 가능 (.GET, .POST 방식이 가장 자주 쓰임)
import requests # requests 라이브러리 설치 필요
r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
print(rjson['RealtimeCityAir']['row'][0]['NO2'])
- bs4(beautiful soup) : 크롤링할 때 쓰임. 이전에 써봤지?
import requests
from bs4 import BeautifulSoup
# 타겟 URL을 읽어서 HTML를 받아오고,
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)
# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
# soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태가 됨
# 이제 코딩을 통해 필요한 부분을 추출하면 된다.
soup = BeautifulSoup(data.text, 'html.parser')
- pymongo : mongoDB 를 사용하기 위해 필요함. 기본 코드 & 주 기능 요약
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
same_ages = list(db.users.find({'age':21},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
파이참 기본 세팅
- new project 생성시 : venv 폴더 생성 확인
- app.py : 아무 이름으로 해도 되긴하지만, 보통 flask 서버 돌리는 파일은 app.py라고 이름지음. 대세를 따르자.
- static 폴더 : 이미지, css 파일 들어감
- templates 폴더 : html 파일 들어감
- index.html : 기본 골격
from flask import Flask, render_template #render_template 하면 templates 폴더에 있는 html이 불려옴!
app = Flask(__name__)
## URL 별로 함수명이 같거나,
## route('/') 등의 주소가 같으면 안됩니다.
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
GET & POST 요청
GET | POST |
통상적으로 데이터 조회(Read) 요청할 때 | 통상적으로 데이터 생성(Creat), 변경(Update), 삭제(Delete) 요철 할 때 |
URL뒤에 물음표 붙여서 key=value 로 전달 (ex : google.com?q=북극곰) |
바로 보이지 않는 HTML body에 key:value형태로 전달 |
- GET 요청 API코드
@app.route('/test', methods=['GET']) #/test라는 URL에서 GET할건데
def test_get(): #함수 이름은 test_get이야
title_receive = request.args.get('title_give') #title_give라는 인수를 요청해서 받은 값을 title_receive라고 할게
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'}) #잘 실행됐으면 메세지 띄워줘
- GET 요청 확인 Ajax코드
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다", // /test 라는 URL에 '봄날은간다'라는 인수로 GET요청할거거든?
data: {},
success: function(response){ // 성공하면 콘솔찍어줘
console.log(response)
}
})
- POST 요청 API코드
@app.route('/test', methods=['POST']) #/test라는 URL에 POST 요청할건데
def test_post(): #함수 이름은 test_post라고 할게
title_receive = request.form['title_give'] #title_give라는 변수를 받아서 나온 값을 title_receive라고 할거니까
print(title_receive) #title_receive 값좀 찍어봐
return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
- POST 요청 확인 Ajax코드
$.ajax({
type: "POST",
url: "/test", // /test라는 URL에 POST할거거든?
data: { title_give:'봄날은간다' }, // '봄날은간다'라는 인수로 데이터 줄게
success: function(response){
console.log(response) // 성공하면 값 콘솔찍어라잉
}
})
'스파르타 > 웹개발' 카테고리의 다른 글
22.02.05 POST & GET 연습 <나홀로메모장> (0) | 2022.02.06 |
---|---|
22.02.04 POST & GET 연습 <모두의 책리뷰> / PyCharm에 JQuery 최신버전 설치하기 (0) | 2022.02.06 |
22.02.03 <덕담 공유 코딩 패키지> '덕담 하나 주면 안 잡아먹지!' 만들기 (0) | 2022.02.04 |
3주차 개발일지 (0) | 2022.02.02 |
22.02.02 <3주차 숙제> 지니 뮤직 크롤링하기 (0) | 2022.02.02 |