새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 국비지원
  • 자기주도학습
  • 코린이
  • docker
  • 개발일지
  • 스파르타코딩클럽
  • 내일배움단
  • Selenium 4
  • AI트랙
  • Python
  • TodayILearned
  • til
  • machine learning
  • 프로그래머스
  • portfolio
  • 코딩프로젝트
  • 코딩
  • 내일배움캠프
  • 내일배움카드
  • Github

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네
TIL

1-2 [JavaScript, html, mongoDB] Flask 환경에서 MongoDB를 이용한 페이지 구성

TIL

1-2 [JavaScript, html, mongoDB] Flask 환경에서 MongoDB를 이용한 페이지 구성

2022. 1. 2. 23:37

오늘 할 일 (계획)

1. DB 추가 구성 - 랜덤 카드 칼럼 출력에 사용

 

2. 비밀번호 변경 페이지 구성하기

 

3. 웹 프로젝트 3 마무리 - 지연중

 

4. 파이썬 알고리즘 강의 2주 차 완료하기 - 지연중

 

5. Git 기초강의 3주 차까지 완강 - 지연중

 

오늘 한 일 (회고)

1. 로그인, 회원가입 페이지 내부 타이머 오류 수정

 

2. 로그인 utf-8 Decode 에러 문제 임시적으로 해결

 

3. 피드 페이지 수정 중

- 정해져 있는 레이아웃이 아닌 데이터 베이스의 데이터를

받아서 화면에 뿌려줄 수 있게 구현 

            <div id="sub-icon-wrapper">
<!--                <div class="sub-item">-->
<!--                    <div class="sub-item-user">-->

<!--                        <div class="sub-item-text">-->
<!--                            <p class="sub-item-name">빨간망토 차차</p>-->
<!--                            <p class="sub-item-follower">이용자님이 팔로우합니다</p>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <p class="sub-item-button">팔로우</p>-->
<!--                </div>-->
            </div>
        </div>
    </div>

</div>
<script src="../static/redirection.js"></script>
<script src="../static/random_show.js"></script>
<script src="../static/feedindex.js"></script>

html 파일 밑에 js 파일 여기서는 random_show.js 파일이 실행되게 구성

$(document).ready(function () {
    // user_info()
    random_show()
    random_show_history()
    mainpost_show()
})
random_show()
random_show_history()
mainpost_show()

실행되면 위와같이 document.ready 함수로 인해서 페이지가 열릴때 random_show.js에 있는 해당

function random_show() {
    // let max = 1200
    // let min = 0
    // let count = Math.floor(Math.random() * (max - min + 1)) + min;
    let count = 0

    $.ajax({
        type: "POST",
        url: "/api/random_show",

함수들이 실행 random_show를 예로 들면 함수가 실행되면서 ajax 통신을 요청

url: "/api/random_show",

로 post 통신을 하게됨 

@app.route("/api/random_show", methods=['POST'])
def show_random():
    book_list = []
    count = int(request.form['count_give'])
    book = list(db.bookmark.find({}, {'_id': False}).sort('like', -1))
    for count_ in book[count:count + 12]:
        book_list.append(count_)
    return jsonify({'book': book_list})

 

이러면 서버에서 db 에서 알맞은 값들을 받아서 json 형식으로 리턴하고 다시 이를 받아서 

 success: function (response) {
            let book = response['book']
            for (let i = 0; i < book.length; i++) {

                // let j = i + 10
                let title = book[i]['comment']
                let img = book[i]['image']
                // let title2 = rest[j]['title']
                // let img2 = rest[j]['img']


                let temp_html = `        
                    <div class = "sub-item" >
                    <div class = "sub-item-user" >
                     ${img}"></a>
                <div class="sub-item-text">
                    <p class="sub-item-name">${title}</p>
                    <p class="sub-item-follower">${title}님을 팔로우합니다</p>
                </div>
            </div>
                <p class="sub-item-button">따라가기</p>
            </div>`

                //   let temp_html_story = `
                //      <div class="story-wrapper">
                //     <div class="story-off">
                //         <img src="${img2}"/>
                //     </div>
                //     <p>${title2}</p>
                // </div>`

                $('#sub-icon-wrapper').append(temp_html)
                // $('#story-container').append(temp_html_story)

                count += 10;
            }
        }
    })

}

sub-icon-wrapper에 원하는 값을 붙여서 html에 뿌려줄 수 있음

 

중간에 MongoDB를 이용한다는 언급이 있었는데 추가 설명하자면 

from pymongo import MongoClient
import certifi
ca = certifi.where()
app = Flask(__name__)
client = MongoClient('mongodb+srv://AKBARI:sparta@cluster0.jujbu.mongodb.net/cluster0?retryWrites=true&w=majority',
                     tlsCAFile=ca)
db = client.dbakbari

등의 설정을 하여 db를 특정 지어서 해당 db의 값에 접근 할 수 있습니다.

 

- 기존 코멘트 입력과 같은 기능 구현이 되어있는 것을 수정할 필요성이 있음

 

* 프로젝트 관련된 문서를 읽고 기존 만들어놓은 것을 보완 수정하는 것에 시간을 많이 썼다.

한가지 느낀점은 처음 Database의 구성을 면밀하고 기능의 흐름대로 잘해놓아야한다는 것을 

느끼게 되었다.

 

그렇지 못하여서 다 작업이 된 페이지를 다시 작업하고 comment관련된 DB 흐름을 다시 만들어야하는 

문제가 생겼다.

 

내일 할 일

1. 프로젝트 피드 페이지 구성 변경하여 완성

 

2. 비밀번호 변경 페이지 만들기

 

3. DB 추가 구성 - 랜덤 카드 칼럼 출력에 사용

 

4. 비밀번호 변경 페이지 구성하기

 

5. 웹 프로젝트 3 마무리 - 지연중

 

6. 파이썬 알고리즘 강의 2주 차 완료하기 - 지연중

 

7. Git 기초강의 3주 차까지 완강 - 지연중

저작자표시 비영리 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

1-5[GIT HUB] 사용법 정리  (0) 2022.01.05
1-4 [Project] 교육일정 참여  (0) 2022.01.04
1-1 [JavaScript ] 타이머 함수(setTimeout, setInterval)  (0) 2022.01.02
211231_TIL  (0) 2021.12.31
211230_TIL  (0) 2021.12.30
  • 오늘 할 일 (계획)
  • 오늘 한 일 (회고)
  • 내일 할 일
'TIL' 카테고리의 다른 글
  • 1-5[GIT HUB] 사용법 정리
  • 1-4 [Project] 교육일정 참여
  • 1-1 [JavaScript ] 타이머 함수(setTimeout, setInterval)
  • 211231_TIL
새벽_나그네
새벽_나그네
IT, 프로그래밍, 정보, 스마트스토어

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.