서버연결 (파이썬)
import pymongo
import certifi
client = pymongo.MongoClient(
"mongodb+srv://test:sparta@cluster0.hd7sx.mongodb.net/Cluster0?retryWrites=true&w=majority",
tlsCAFile=certifi.where())
db = client.dbsparta
flask로 mongoDB연결 + HTML 연결 (파이썬)
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
@app.route("/homework", methods=["POST"])
def homework_post():
sample_receive = request.form['sample_give']
print(sample_receive)
return jsonify({'msg': 'POST 연결 완료!'})
@app.route("/homework", methods=["GET"])
def homework_get():
return jsonify({'msg': 'GET 연결 완료!'})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
크롤링(파이썬)
import requests #pip install requests
from bs4 import BeautifulSoup #pip install bs4
@app.route("/movie", methods=["POST"])
def movie_post():
url_receive = request.form['url_give']
star_receive = request.form['star_give']
comment_receive = request.form['comment_give']
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_receive, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
title = soup.select_one('meta[property="og:title"]')['content']
image = soup.select_one('meta[property="og:image"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
doc = {
'title': title,
'image': image,
'desc': desc,
'star': star_receive,
'comment': comment_receive
}
db.movies.insert_one(doc)
return jsonify({'msg':'저장 완료'})
html (POST) 웹내용 DB에 저장하기
function save_comment() {
let name = $('#name').val()
let comment = $('#comment').val()
$.ajax({
type: 'POST',
url: '/homework',
data: {name_give: name, comment_give: comment},
success: function (response) {
alert(response['msg'])
window.location.reload()
}
})
}
html (GET) DB내용 웹에 보여주기
function show_comment() {
$.ajax({
type: "GET",
url: "/homework",
data: {},
success: function (response) {
let rows = response['fans']
for (let i = 0; i < rows.length; i++) {
let name = rows[i]['name']
let comment = rows[i]['comment']
let temp_html = `<div class="card">
<div class="card-body">
<blockquote class="blockquote mb-0">
<p>${comment}</p>
<footer class="blockquote-footer">${name}</footer>
</blockquote>
</div>
</div>`
$('#comment-list').append(temp_html)
}
}
})
}
'개발 이야기 > 항해99' 카테고리의 다른 글
[항해99] 2주차 - JWT(JSON Web Token)란? (0) | 2022.03.13 |
---|---|
[항해99] 시작 전 사전수업 - 5주차: AWS서버연결, Gitbash, 가비아 도메인연결 (0) | 2022.02.10 |
[항해99] 시작 전 사전수업 - 3주차: mongoDB연결 및 작동법 (feat.mongoDB 연결 오류) (0) | 2022.02.07 |
[항해99] 시작 전 사전수업 - 2주차 (0) | 2022.02.03 |
[항해99] 시작 전 사전수업 - 1주차 (0) | 2022.02.02 |