ムービーシードAPIの作成とスクロール


MOVIE PIDIAを作ろう!


プロジェクトの設定
フラスコ、pymongo、dnspython、リクエスト、bs 4パッケージのインストール

テンプレート内のインデックス.html static app.py !

新しいプロジェクトでは、上記のプリファレンスパラメータを設定する必要があります.
スクロールするときはインストールリクエストとbs 4パッケージが必要です!

スクロール練習!


og:image/og:title/og:スクロールを使用して説明をスクロール!
デフォルトコードのスクロール
import requests
from bs4 import BeautifulSoup

url = 'https://movie.naver.com/movie/bi/mi/basic.naver?code=191597'

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')
スクロールの基本コードはこのように記述されています.
しかし、既存の方式では誤りが生じるため、以前学んだ方式ではなく、他の方式で実現される.
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']
実装では、タイトル、写真、説明を持ってくることができます.
すなわちmetaの属性からog:値のcontentを取得する.

POST復習


まずサーバを作成し、クライアントを作成する順序で行います.
必要なのはurl starコメントです.
  url_receive = request.form['url_give']
  star_receive = request.form['star_give']
  comment_receive = request.form['comment_give']
受信する変数を指定します.
from pymongo import MongoClient
client = MongoClient(
  'mongodb://id:[email protected]:27017,cluster0-shard-00-01.oce1s.mongodb.net:27017,cluster0-shard-00-02.oce1s.mongodb.net:27017/Cluster0?ssl=true&replicaSet=atlas-fc9srx-shard-0&authSource=admin&retryWrites=true&w=majority')
db = client.dbsparta
DBに保存するためにimportを提供します.
doc = {
    'title':title,
    'image':image,
    'desc':desc,
    'star':star_receive,
    'comment':comment_receive
  }
  db.movies.insert_one(doc)
DBに入れる.
function posting() {
            let url = $('#url').val()
            let star = $('#star').val()
            let comment = $('#comment').val()

            $.ajax({
                type: 'POST',
                url: '/movie',
                data: {url_give: url, star_give:star,comment_give:comment},
                success: function (response) {
                    alert(response['msg'])
                }
            });
        }
url star commentは、その時点で受信したデータを各変数に入れ、サーバと通信するためにAjaxデータに入れます.

GET復習


GETはPOSTより簡単そうです.
まずPOST登録後にDBに入ったものを取り出して噴き出せばいいです
@app.route("/movie", methods=["GET"])
def movie_get():
  movie_list = list(db.movies.find({}, {'_id': False}))
  return jsonify({'movies':movie_list})
映画の中のすべての映画資料を持ってきて返事をください.
 for (let i = 0; i < rows.length; i++) {
                        let comment = rows[i]['comment']
                        let title = rows[i]['title']
                        let desc = rows[i]['desc']
                        let image = rows[i]['image']
                        let star = rows[i]['star']
得られたデータをfor文に変換し、各変数に格納します.
まだあります.
let temp_html =`<div class="col">
                                            <div class="card h-100">
                                                <img src="${image}"
                                                     class="card-img-top">
                                                <div class="card-body">
                                                    <h5 class="card-title">${title}</h5>
                                                    <p class="card-text">${comment}</p>
                                                    <p>${star_image}</p>
                                                    <p class="mycomment">${desc}</p>
                                                </div>
                                            </div>
                                        </div>`
                        $('#cards-box').append(temp_html)
temp htmlを使用してテンプレートをキャプチャし、[記録](Record)をクリックし、保存が完了したら更新して登録します.