事前準備航海5週間のコース整理


https://velog.io/@rlafbf222
<航海99準備時間>
Web開発総合クラス概念まとめ
5週目!!

  • 1-3強.要約
    1)ファイルをインストールして、加維亜ドメインを購入する
    2)プロジェクトの作成(ディレクトリ内のテンプレート、静的フォルダ、app.py)
    3)パッケージ(フラスコ、pymongo、dnspython)のインストール

  • ベスト4遺願リスト–POST練習(録画)
  • @app.route("/bucket", methods=["POST"])
    def bucket_post():
        bucket_receive = request.form['bucket_give']
    
        bucket_list = list(db.bucket.find({}, {'_id': False}))
        count = len(bucket_list) + 1
    
        doc = {
            'num':count,
            'bucket': bucket_receive,
            'done':0
        }
        db.bucket.insert_one(doc)
    
        return jsonify({'msg': '등록 완료!'})
    function save_bucket() {
        let bucket = $('#bucket').val()
        $.ajax({
            type: "POST",
            url: "/bucket",
            data: {bucket_give: bucket},
            success: function (response) {
                alert(response["msg"])
                window.location.reload()
            }
        });
    }
  • 5強.遺願リスト–GET練習(プレゼンテーション)
  • @app.route("/bucket", methods=["GET"])
    def bucket_get():
        bucket_list = list(db.bucket.find({}, {'_id': False}))
    
        return jsonify({'buckets': bucket_list})
    function show_bucket() {
        $.ajax({
            type: "GET",
            url: "/bucket",
            data: {},
            success: function (response) {
                let rows = response["buckets"]
                console.log(rows)
                for (let i = 0; i < rows.length; i ++){
                    let num = rows[i]['num']
                    let bucket = rows[i]['bucket']
                    let done = rows[i]['done']
                    let temp_html = ``
                    if (done == 0){
                        temp_html = `<li>
                                        <h2>✅ ${bucket}</h2>
                                        <button onclick="done_bucket(${num})" type="button" class="btn btn-outline-primary">완료!</button>
                                    </li>`
                    }else{
                        temp_html = `<li>
                                        <h2 class="done">✅ ${bucket}</h2>
                                    </li>`
                    }
                    $('#bucket-list').append(temp_html)
                }
    
            }
        });
    }
  • 6強.遺願リスト-POST練習(完了)
    1)ajaxから入力されたnum receive値が文字列に渡されることに注意してください.だからintタイプに変換します!
  • @app.route("/bucket/done", methods=["POST"])
    def bucket_done():
        num_receive = int(request.form['num_give'])
        db.bucket.update_one({'num':num_receive}, {'$set': {'done':1}})
        return jsonify({'msg': '임무 완료!'})
    function done_bucket(num) {
        $.ajax({
            type: "POST",
            url: "/bucket/done",
            data: {num_give: num},
            success: function (response) {
                alert(response["msg"])
                window.location.reload()
            }
        });
    }

  • 7~8強.私のプロジェクトをサーバにアップロード
    1)お客様のリクエストにいつでも対応する必要があります.
    2)コンピュータは常にプログラムを開いて実行しなければならない.
    3)すべての人がアクセスできる公開アドレスである公開IPアドレス(Public IP Address)を使用して、私のWebサービスにアクセスします.
    4)つまり,サーバ=コンピュータを考えると便利である.
    5)AWSインスタンスの停止=コンピュータのシャットダウン/インスタンスのシャットダウン=コンピュータの返却
    6)したがって、新しいインスタンスを作成するには、インスタンスを終了して新しいインスタンスを作成します.
    7)Git bashキーを押して次のコマンドを入力する
    8) ssh -I/c/users/Jun_Kim/Desktop/hjkim_mykey.pem [email protected]
    9)Ubuntuの後のIPは購入例のIPv 4アドレスである
    10)enterhuyesを入力すると、購入したパソコンにリモートで接続できます.
    11)mkdirフォルダの作成
    12)lsは、現在位置が表示可能なフォルダのリスト出力である.
    13)cdは対応する位置に移動します(ただし,「...」を付けると外に移動します)

  • 9強.サーバの設定
    1)一次EC 2に設定コマンドを順次入力する.
    2)file zillaを使用して作成したサーバにバインドする(プロトコルはsftpログインでpemファイルをkeyfileに入れ、ユーザーはubuntuを使用することができる
    3)接続時に作成したサーバーが右側に表示されます.
    4)ドラッグ&ドロップでOK!
    5) test.pyを入れ、対応するフォルダに移動してpython testを行います.py入力時Hello Sparta!!出力の確認

  • ベスト10.Flashサーバの実行を試みる
    1)Filezillaで、ジョブフォルダにあるapp.py、templates、静的移行
    2)Git bashにpip installフラスコ、pymongo、dnspython、certifiを取り付ける
    3)住所は3.37.129.56:5000
    4)ポートがまだ開いておらず接続できません
    5)AWSインスタンスで次のインバウンド・セキュリティ・ルールを編集し、他の2つを作成します.
    6)5000個のポートを許可し、80個の(エラー)ポートを許可する
    7)ポート転送命令を出したので,下端スローガンを取ってアドレスを入力しても80に入り,再び5000に入る.そのため、下端スローガンを取っても接続できます!

  • 11強.設定Nohup
    1)現在のGit bashを終了(SSH接続を切断)すると、サーバーも終了する
    2)これを防ぐために、SSH接続が切れてもサーバが返すコマンドを追加!!
    3) nohup python app.py &
    4)でも今はどうやって閉めるか分からない!!強制終了コマンド
    5) ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill
    6)整理すると,ディスパッチIDEで作業を完了し,->ファイルで静的,templates,appを検索する.pyをgit bashに移動し、nohupとして使用します.
    7)変更がある場合は、変更後に削除して再実行します.

  • 12強.ドメインの接続
    1)ガビア接続
    2)購入したドメインのDNSを設定する
    3)ホストは@
    4)値/場所にインスタンスIPv 4アドレスの数値のみを入力して保存確認
    5)完成!ドメイン使用可能

  • 13強.Ogラベル
  • 1)	카톡 같은 곳에 공유할 때 뜨는 이미지 제목 설명 등등
    2)	<meta property="og:title" content="내 사이트의 제목" />
    3)	<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
    4)	<meta property="og:image" content="이미지URL" />
    5)	위 코드를 head에 넣어주기!
  • 14強.宿題:私が送ったurlを提出します!
    URL: http://hjkim-sparta.shop/