[明日の学習キャンプ]#210916(feat.ネット基礎の復習)
12531 ワード
個人手帳PROJECT(feat.Webベース2週目復習)
jQueryの使用
機能
<button onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</button>
<script>
function openclose() {
#id값 post-box의 display 값이 block이면
if($('#post-box)).css('display')=='block')
{
// post-box를 가리고
$('#post-box').hide();
$('#btn-posting-box").text('포스팅박스 열기')
} else {
// 아니면 post-box를 펴라
$('#post-box').show();
$('#btn-posting-box").text('포스팅박스 딛ㄱ;')
}
}
</script>
<button id="btn-posting-box" onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</a> //포스팅박스 열기 버튼에 id값 주기
最初から<div class="form-post" id="post-box" style="display:none">
サーバ-クライアント通信について
APIとは?
(APIの作成者は、他の人が使用できるように独自のデータベースまたは機能をモジュール化)
クライアントの要求方式
Ajax
$.ajax({
type: "GET", // GET 방식으로 요청한다.
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99", //서버에 있는 API
data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요)
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
}
})
responseはapi呼び出し結果を受信するパラメータです!
上の反応部分は最初は少し混同されていましたが、ランダム変数で、反応を結果に変えても結果値は同じです.
サーバはjsonify()を応答として返します
サーバがjsonify(response)を使用するのは、データを下図に示すフォーマットに作成するからです.(質問室で助けてもらう)
ネットワークスクロール(feat.ネットワークベース3週間復習)
仮想環境
Webスクロール
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'})
全員の書評(feat.web 4週間復習)
機能
POST(REVIEW保存)
:サーバは、受信した=>デバイスにクライアントから提供された情報を保存する必要があります=>保存に成功したときに応答データを送信します.
GET(データベースに保存されているコメントを表示)
:サーバがデータベースからコメントを取得し、応答=>クライアントがサーバから受信します.
サーバコード
@app.route('/review', methods=['POST'])
def write_review():
title_receive = request.form['title_give']
author_receive = request.form['author_give']
review_receive = request.form['review_give']
doc = {
'title': title_receive,
'author': author_receive,
'review': review_receive
}
db.bookreview.insert_one(doc)
return jsonify({'msg': '리뷰가 저장되었습니다'})
@app.route('/review', methods=['GET'])
def read_reviews():
reviews = list(db.bookreview.find({}, {'_id': False}))
return jsonify({'all_reviews': reviews})
function makeReview() {
let title = $('#title').val()
let author = $('#author').val()
let review = $('#bookReview').val()
if (title == '' || author == '' || review == '') {
alert('다시 입력해주세요')
}
else {
$.ajax({
type: "POST",
url: "/review",
data: {title_give:title,author_give:author,review_give:review},
success: function (response)
{
alert(response["msg"]);
window.location.reload();
}
})
}
}
function showReview() {
$.ajax({
type: "GET",
url: "/review",
data: {},
success: function (response) {
let reviews=response['all_reviews']
for(let i=0;i<reviews.length;i++)
{
let title=reviews[i]['title']
let author=reviews[i]['author']
let review=reviews[i]['review']
let temp_html=`<tr>
<td>${title}</td>
<td>${author}</td>
<td>${review}</td>
</tr>`
$('#reviews-box').append(temp_html)
}
}
})
}
</script>
Reference
この問題について([明日の学習キャンプ]#210916(feat.ネット基礎の復習)), 我々は、より多くの情報をここで見つけました https://velog.io/@dltndudvlzm/내일배움캠프-210916-feat.-웹기초-복습テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol