flask
flask 프레임워크 : 서버를 구동시켜주는 편한 코드 모음. 서버를 구동하려면 필요한 복잡한 일들을 쉽게 가져다 쓸 수 있음.
from flask import Flask
app = Flask(name)
@app.route('/')
def home():
return 'This is Home!'
if name == 'main':
app.run('0.0.0.0',port=5000,debug=True)
--> localhost : 5000
localhost:5000이랑 파이썬에서 브라우저 여는 것의 차이
localhost는 내 컴퓨터에서 만든 서버에 요청을 해서 서버에서 가지고 있던 index.html파일을 받아와서 그린 것
파이썬 내 브라우저는 index.html파일을 그냥 연 것임
flask 시작
@app.route('/test', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
@app.route('/test', methods=['POST'])
def test_post():
title_receive = request.form['title_give']
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
$.ajax({
type: "POST",
url: "/test",
data: { title_give:'봄날은간다' },
success: function(response){
console.log(response)
}
})
app.py : 서버 / index.html : 클라이언트
app.py뼈대
from flask import Flask, render_template, jsonify, request
app = Flask(name)
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
@app.route('/')
def home():
return render_template('index.html')
@app.route('/memo', methods=['GET'])
def listing():
sample_receive = request.args.get('sample_give')
print(sample_receive)
return jsonify({'msg':'GET 연결되었습니다!'})
@app.route('/memo', methods=['POST'])
def saving():
sample_receive = request.form['sample_give']
print(sample_receive)
return jsonify({'msg':'POST 연결되었습니다!'})
if name == 'main':
app.run('0.0.0.0',port=5000,debug=True)
나홀로 메모장 설계 계획짜기
Q. 2번은 언제 클라이언트에서 언제 호출? -> 로딩이 끝나면 바로
--> 기사저장 버튼에 ajax 콜 하나 생성
--> 로딩하면 바로 호출되는 것에 ajax콜 하나 생성
meta_tag사용하기
브라우저에서 들어갔을 때 meta_tag의 순서와 파이썬 코드가 접속했을 떄 meta_tag순서가 다를 수 있기 때문에 원하는 정보를 크롤링하지 못하는 경우가 있음
--> beautifulsoup의 새로운 사용방법
soup.select_one('meta[property="og:title"]') //meta태그 중에서 []안의 속성이 일치하는 놈을 가져와라
post 순서
app.js
POST - 무슨 경로로 데이터 받아올 것인지 지정하고 그 값을 DB에 저장
(경로지정, doc = {} , db.shops.insert_one(doc))
GET - db에 있는 값 가져오기오고 그 값을 jsonify를 통해 전달
(shops = list(db.shops.find({},{'id':False})
jsonify({'all_reviews':reviews})
index.html
POST - html상에서 값을 받아와서 data부분을통해 서버에 값 전달
(let name = $('#order-name').val()...
name_receive:name....)
GET -
data부분은 안건드리고 success부분에서 jsonify를 통해 전달받은 값을 저장해두고 for문 돌리면서 temp_html써서 붙이기
(let orders = response['all-orders']
let name = orders[i]['name']....
temp_html = ...
$('#order-box').append(temp_html))