明日学习団11日制作チャレンジ初日
1日目(mongodyからWeb scripting&ジョブ/プロジェクト1日目)
テーマ選定:ゲーム別おすすめサイト API使用:https://www.freetogame.com/api-doc キャスト:フロントエンド(2)、バックエンド(2)、フロントエンドとバックエンド(2) mongody:データベース、グラフィックインターフェースを提供しない(=GUI) Robo 3 T:mongodbの内部確認. SQL
:行と列で特定されたセルにデータを格納するように、エントリを事前に特定するデータベース.
それは固定的で、データは一致していて、分析しやすいです.
したがって,中間でフレームを変えることは難しく,変化に対して効率的ではない. NoSQL ( Not only SQL )
:データをバイナリ形式で格納するデータベース.
各データには異なる値があります.
自由な形態であるため、変化は容易であるが、一貫性に欠けている. Pymongo:Pythonでmongodbを操作するためのライブラリ. ドライバ用の基本コードPymongoは、mongodb内のデータの格納、取得、変更、削除を許可する. [例]
クリップNAVER映画採点、Q 1映画番組「マトリックス」採点 第2四半期に『マトリックス』と同じ評価を受けた映画名 Q 3マトリックス映画採点0 Q1
Q2
Q3
[1日目]プロジェクトテーマを選択し、役割を割り当てます
[1]mongodbとRobo 3 Tのキャラクター
[2]データベースのタイプ
:行と列で特定されたセルにデータを格納するように、エントリを事前に特定するデータベース.
それは固定的で、データは一致していて、分析しやすいです.
したがって,中間でフレームを変えることは難しく,変化に対して効率的ではない.
(ex) MS-SQL, My-SQL, Oracle ...
:データをバイナリ形式で格納するデータベース.
各データには異なる値があります.
自由な形態であるため、変化は容易であるが、一貫性に欠けている.
(ex) mongoDB ...
[3] Pymongo
from pymongo import MongoClient
#pymongo를 임포트 하기
client = MongoClient('localhost', 27017)
#mongoDB는 27017 포트로 구동
db = client.dbsparta
#'dbsparta'라는 이름의 데이터베이스 추가
doc = {'name':'bobby','age':21}
# 이 데이터 하나를
db.users.insert_one(doc)
# 데이터베이스의 users에 저장한다.
user = db.users.find_one({'name':'bobby'})
# users에서 이 값을 가진 데이터를 찾는다.
same_ages = list(db.users.find({'age':21},{'_id':False}))
# users에서 이 값을 가진 데이터들을 리스트로 만든다.
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# users에 name:bobby인 데이터의 age를 19로 수정한다.
db.users.delete_one({'name':'bobby'})
# users의 데이터 중 이 값을 가진 데이터를 지운다.
[4]Quiz Webクリップ結果の使用
クリップNAVER映画採点、
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
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)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
tag = tr.select_one('td.title > div > a')
user = db.movies.find_one({'title':'매트릭스'},{'_id':False})
same = user['star']
#quiz1
print(same)
#quiz2
users = list(db.movies.find({'star':same},{'_id':False}))
for us in users :
print(us['title'])
#quiz3
#db.movies.update_one({'title':'매트릭스'},{'$set':{'star':'0'}})
結果:
[5]作業>ジェニーミュージック上位1~50名をクリップする
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
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://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
geni = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for songs in geni:
song = songs.select_one('td.info > a.title.ellipsis').text
title = song.strip()
rank = songs.select_one('td.number').text[0:2].strip()
# 슬라이싱 : [a:b] a열에서 b열까지 추출.
singer = songs.select_one('td.info > a.artist.ellipsis').text.strip()
print(rank, title, singer)
結果:
授業を聞いてから
: 강의를 들으며 할때는 잘 따라하다가도 퀴즈나 숙제 할때는 몇번이고 헤매고 오류나고
했지만 결국에는 혼자만의 힘으로 해내게 되는게 스파르타의 힘이 아닐까싶다. 어쩌면
다음에 다시 mongoDB를 하게 될때 다시 또 헤맬수도 있겠지만, 그때도 다시 잘 해낼거라
는 자신감이 생겼다.
이번 프로젝트에서 내가 가져온 주제가 선정이 되서 엄청 놀랐었다. 안될거라고 예상했기에
주제설명도 엄청 떨면서 횡설수설한 기분이었지만, 팀원분들이 워낙 좋은 분들이기도 하고
다들 나보다는 능력이 출중하신 분들이라서 이야기가 생각보다 잘 정리되었다.
내일까지 홈페이지 구성을 생각해온뒤 이야기를 나누기로 했다. 고민 좀 해봐야할듯 하다.
Reference
この問題について(明日学习団11日制作チャレンジ初日), 我々は、より多くの情報をここで見つけました https://velog.io/@hello9721/내일배움단-11일메이킹챌린지-1일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol