@app.route('/memo', methods=['POST'])
def saving():
url_receive = request.form['url_give']
comment_receive = request.form['comment_give']
url = url_receive
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(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
image = soup.select_one('meta[property="og:image"]')['content']
title = soup.select_one('meta[property="og:title"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
doc = {
'image':image,
'title':title,
'desc':desc,
'comment':comment_receive,
'url':url
}
db.alone.insert_one(doc)
return jsonify({'msg':'POST 연결되었습니다!'})
function postArticle() {
let url = $('#post-url').val()
let comment = $('#post-comment').val()
$.ajax({
type: "POST",
url: "/memo",
data: {url_give:url,comment_give:comment},
success: function (response) { // 성공하면
alert(response["msg"]);
window.location.reload()
}
})
}
@app.route('/memo', methods=['GET'])
def listing():
review_receive = list(db.alone.find({},{'_id':False}))
return jsonify({'review':review_receive})
function showArticles() {
$.ajax({
type: "GET",
url: "/memo?sample_give=샘플데이터",
data: {},
success: function (response) {
let review = response['review']
for (let i = 0 ; i < review.length ; i ++)
{
let title = review[i]['title']
let url = review[i]['url']
let desc = review[i]['desc']
let image = review[i]['image']
let comment = review[i]['comment']
let temp_html = ` <div class="card">
<img class="card-img-top"
src=${image}
alt="Card image cap">
<div class="card-body">
<a target="_blank" href=${url} class="card-title">${title}</a>
<p class="card-text">${desc}</p>
<p class="card-text comment">${comment}</p>
</div>`
$('#cards-box').append(temp_html)
}
}
})
}
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbhomework
## HTML 화면 보여주기
@app.route('/')
def homework():
return render_template('index.html')
# 주문하기(POST) API
@app.route('/order', methods=['POST'])
def save_order():
sample_receive = request.form['sample_give']
print(sample_receive)
return jsonify({'msg': '이 요청은 POST!'})
# 주문 목록보기(Read) API
@app.route('/order', methods=['GET'])
def view_orders():
sample_receive = request.args.get('sample_give')
print(sample_receive)
return jsonify({'msg': '이 요청은 GET!'})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Yeon+Sung&display=swap" rel="stylesheet">
<meta charset="UTF-8">
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"></script>
<title>스파르타코딩클럽 | 원페이지 쇼핑몰</title>
<style>
* {
font-family: 'Yeon Sung', cursive;
}
.top_margin {
margin: 35px;
}
.wrap {
width: 500px;
margin: auto;
}
.item_info {
width: 500px;
margin-top: 20px;
margin-bottom: 10px;
}
.price {
font-size: 20px;
}
.item_order {
width: 450px;
margin-top: 10px;
margin-bottom: 20px;
}
.order {
width: 100px;
margin: auto;
display: block;
}
.rate {
color: blue;
font-size: small;
}
</style>
<script>
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rate",
data: {},
success: function (response) {
let date = response['date']
let rate = response['rate']
let rate_text = `<p>${date}자 달러-원 환율 : ${rate}</p>`
$('#rate').append(rate_text)
}
})
})
function order() {
alert('예약이 완료되었습니다.');
}
</script>
</head>
<body>
<div class="top_margin"></div>
<div class="wrap">
<div class="card border-dark mb-3" style="max-width: 25rem;">
<div class="card-header">유럽여행 4박 6일 패키지</div>
<img class="card-img-top"
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSWKv4nuXL-ya4NdYocUTVHtF5uXgOVKCHF2Q&usqp=CAU"
alt="Card image cap">
</div>
<div class="item_info">
<h2>유럽여행 5박 6일 패키지 <span class="price">가격 : 600,000원 / 일</span></h2>
<p>북유럽 4박 6일 패키지 / 온라인 특별가 / 왕복 항공권포함 / TAX및 유류할증료 변경가능 / 카드사별 무이자 / 성인 1인 1박기준</p>
</div>
<span class="rate" id=rate></span>
<div class="item_order">
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">주문자 이름</span>
</div>
<input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">인수</button>
</div>
<select class="custom-select" id="inputGroupSelect03">
<option selected></option>
<option value="1">1명</option>
<option value="2">2명</option>
<option value="3">3명</option>
<option value="3">4명</option>
</select>
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">주소</span>
</div>
<input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">연락처</span>
</div>
<input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
</div>
</div>
<div class="order">
<button type="button" class="btn btn-primary" onclick="order()">예약하기</button>
<table class="table">
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">수량</th>
<th scope="col">주소</th>
<th scope="col">전화번호</th>
</tr>
</thead>
<tbody id="order_table">
</tbody>
</table>
</div>
</div>
</body>
</html>
@app.route('/order', methods=['POST'])
def save_order():
name_receive = request.form['name_give']
person_receive = request.form['person_give']
address_receive = request.form['address_give']
phone_receive = request.form['phone_give']
doc = {
'name':name_receive,
'person':person_receive,
'address':address_receive,
'phone':phone_receive
}
print(doc)
db.orders.insert_one(doc)
return jsonify({'msg': '주문이 완료되었습니다!'})
function order() {
let name = $('#name').val();
let person = $('#person').val();
let address = $('#address').val();
let phone = $('#phone').val();
$.ajax({
type: "POST",
url: "/order",
data: {name_give: name, person_give: person, address_give: address, phone_give: phone},
success: function (response) {
alert(response["msg"]);
}
})
}
@app.route('/order', methods=['GET'])
def view_orders():
order = list(db.orders.find({},{'_id':False}))
return jsonify({'orders': order})
function order_listing() {
$.ajax({
type: "GET",
url: "/order",
data: {},
success: function (response) {
let order = response['orders']
for (let i = 0; i < order.length; i++) {
let name = order[i]['name'];
let person = order[i]['person'];
let address = order[i]['address'];
let phone = order[i]['phone'];
let temp_html = `<tr>
<th scope="row">${name}</th>
<td>${person}</td>
<td>${address}</td>
<td>${phone}</td>
</tr>`
console.log(temp_html)
$('#order_table').append(temp_html)
}
}
})
}
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbhomework
## HTML 화면 보여주기
@app.route('/')
def homework():
return render_template('index.html')
# 주문하기(POST) API
@app.route('/order', methods=['POST'])
def save_order():
name_receive = request.form['name_give']
person_receive = request.form['person_give']
address_receive = request.form['address_give']
phone_receive = request.form['phone_give']
doc = {
'name':name_receive,
'person':person_receive,
'address':address_receive,
'phone':phone_receive
}
print(doc)
db.orders.insert_one(doc)
return jsonify({'msg': '주문이 완료되었습니다!'})
# 주문 목록보기(Read) API
@app.route('/order', methods=['GET'])
def view_orders():
order = list(db.orders.find({},{'_id':False}))
return jsonify({'orders': order})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Yeon+Sung&display=swap" rel="stylesheet">
<meta charset="UTF-8">
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"></script>
<title>스파르타코딩클럽 | 원페이지 쇼핑몰</title>
<style>
* {
font-family: 'Yeon Sung', cursive;
}
.top_margin {
margin: 35px;
}
.wrap {
width: 500px;
margin: auto;
}
.item_info {
width: 500px;
margin-top: 20px;
margin-bottom: 10px;
}
.price {
font-size: 20px;
}
.item_order {
width: 450px;
margin-top: 10px;
margin-bottom: 20px;
}
.order {
width: 100px;
margin: auto;
display: block;
}
.rate {
color: blue;
font-size: small;
}
</style>
<script>
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rate",
data: {},
success: function (response) {
let date = response['date']
let rate = response['rate']
let rate_text = `<p>${date}자 달러-원 환율 : ${rate}</p>`
$('#rate').append(rate_text)
}
})
order_listing();
});
function order_listing() {
$.ajax({
type: "GET",
url: "/order",
data: {},
success: function (response) {
let order = response['orders']
for (let i = 0; i < order.length; i++) {
let name = order[i]['name'];
let person = order[i]['person'];
let address = order[i]['address'];
let phone = order[i]['phone'];
let temp_html = `<tr>
<th scope="row">${name}</th>
<td>${person}</td>
<td>${address}</td>
<td>${phone}</td>
</tr>`
console.log(temp_html)
$('#order_table').append(temp_html)
}
}
})
}
function order() {
let name = $('#name').val();
let person = $('#person').val();
let address = $('#address').val();
let phone = $('#phone').val();
$.ajax({
type: "POST",
url: "/order",
data: {name_give: name, person_give: person, address_give: address, phone_give: phone},
success: function (response) {
alert(response["msg"]);
window.location.reload()
}
})
}
</script>
</head>
<body>
<div class="top_margin"></div>
<div class="wrap">
<div class="card border-dark mb-3" style="max-width: 25rem;">
<div class="card-header">유럽여행 4박 6일 패키지</div>
<img class="card-img-top"
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSWKv4nuXL-ya4NdYocUTVHtF5uXgOVKCHF2Q&usqp=CAU"
alt="Card image cap">
</div>
<div class="item_info">
<h2>유럽여행 5박 6일 패키지 <span class="price">가격 : 600,000원 / 일</span></h2>
<p>북유럽 4박 6일 패키지 / 온라인 특별가 / 왕복 항공권포함 / TAX및 유류할증료 변경가능 / 카드사별 무이자 / 성인 1인 1박기준</p>
</div>
<span class="rate" id=rate></span>
<div class="item_order">
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text">주문자 이름</span>
</div>
<input type="text" class="form-control" id="name" aria-label="Small"
aria-describedby="inputGroup-sizing-sm">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">인수</button>
</div>
<select class="custom-select" id="person">
<option selected></option>
<option value="1">1명</option>
<option value="2">2명</option>
<option value="3">3명</option>
<option value="3">4명</option>
</select>
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text">주소</span>
</div>
<input type="text" class="form-control" id="address" aria-label="Small"
aria-describedby="inputGroup-sizing-sm">
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id=>연락처</span>
</div>
<input type="text" class="form-control" id="phone" aria-label="Small"
aria-describedby="inputGroup-sizing-sm">
</div>
</div>
<div class="order">
<button type="button" class="btn btn-primary" onclick="order()">예약하기</button>
</div>
</div>
<table class="table">
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">수량</th>
<th scope="col">주소</th>
<th scope="col">전화번호</th>
</tr>
</thead>
<tbody id="order_table">
</tbody>
</table>
</body>
</html>
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbhomework
## HTML 화면 보여주기
@app.route('/')
def homework():
return render_template('index.html')
# 주문하기(POST) API
@app.route('/order', methods=['POST'])
def save_order():
name_receive = request.form['name_give']
person_receive = request.form['person_give']
address_receive = request.form['address_give']
phone_receive = request.form['phone_give']
doc = {
'name':name_receive,
'person':person_receive,
'address':address_receive,
'phone':phone_receive
}
print(doc)
db.orders.insert_one(doc)
return jsonify({'msg': '주문이 완료되었습니다!'})
# 주문 목록보기(Read) API
@app.route('/order', methods=['GET'])
def view_orders():
order = list(db.orders.find({},{'_id':False}))
return jsonify({'orders': order})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)```