강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Bokhee Hong님의 프로필 이미지
Bokhee Hong

작성한 질문수

남박사의 파이썬으로 실전 웹사이트 만들기

게시판만들기 - 글 리스트

리스트 이동 시 창 에러 발생

해결된 질문

작성

·

24

0

다른 쪽은 모두 정상인데.... 로그인, 글 작성,수정 후, 리스트 창으로 이동 시 서버 에러가 나오는데,,, 원인을 못 찼겠습니다.


@blueprint.route("/list")
def lists():
    page = request.args.get("page", 1, type=int)
    limit = request.args.get("limit", 10, type=int)

    search = request.args.get("search", -1, type=int)
    keyword = request.args.get("keyword", "", type=str)

    query = {}
    search_list = []

    if search == 0:
        search_list.append({"title": {"$regex": keyword}})
    elif search == 1:
        search_list.append({"contents": {"$regex": keyword}})
    elif search == 2:
        search_list.append({"title": {"$regex": keyword}})
        search_list.append({"contents": {"$regex": keyword}})
    elif search == 3:
        search_list.append({"name": {"$regex": keyword}})

    if len(search_list) > 0:
        query = {"$or": search_list}

    board = mongo.db.board

    datas = board.find(query).skip((page-1) * limit).limit(limit)

    #tot_count = board.find(query).count()
    tot_count = board.count_documents(query)
    last_page_num = math.ceil(tot_count / limit)
    

    block_size = 5
    block_num = int((page-1) / block_size)
    block_start = int((block_size * block_num) + 1)
    block_last = math.ceil(block_start + (block_size-1))

    
    return render_template("list.html", 
                            datas=datas, 
                            limit=limit, 
                            page=page,
                            block_start=block_start,
                            block_last=block_last,
                            last_page=last_page_num,
                            search=search,
                            keyword=keyword,
                            title="리스트",
                            )

답변 1

0

남박사님의 프로필 이미지
남박사
지식공유자

"로그인, 글 작성,수정 후, 리스트 창으로 이동 시" 가 어떤 상황, 어떤 제스쳐를 말씀하시는건지 제가 이해를 잘 못하고 있긴 합니다만 일단 올려주신 코드에서는 별다른 문제를 보이는 내용은 없어 보입니다.

일단 각 변수들, page, limit, seach, keyword 값을 print() 하게 해놓고 requests.args.get() 이후의 코드는 다 주석처리 한 뒤, 위에서 말씀하신 "로그인, 글 작성,수정 후, 리스트 창으로 이동 시" 상황을 연출하여 오류가 발생하는지 다시 확인해보시는게 어떨까 합니다.

다 주석처리 했음에도 오류가 발생한다면 requests.args.get() 에서 문제가 생기는 걸 테고, 문제가 없다면 requests.args.get() 이후 동작에 문제가 생기는거라고 유추해볼 수 있을듯 합니다. 일단은 어느시점에서 뭐가 문제인지를 명확하게 찾는게 우선순위일듯 합니다.

 

Bokhee Hong님의 프로필 이미지
Bokhee Hong
질문자

서버에 업로드 하고 board/write 페이지에서 작성 후, 작성하기 클릭하면 정상적으로 작성하였습니다 나오고 확인 클릭하면 리스트 페이지로 안가고, write 페이지 화면이 나옵니다 그리고 리스트 클릭하면 하기처럼 에러가 나옵니다

참고로 서버에 접속해서 로그인 해도 하기처럼 나오는데... 전혀 감을 못 잡겠습니다

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

남박사님의 프로필 이미지
남박사
지식공유자

일단 말씀하신 여러 상황들을 봤을때 제가 전혀 어떤 상황인지 감을 못 잡고 있는 상태입니다. 지금 댓글에선 리스트의 문제가 아닌걸 말씀하시고 있는데 서버 전체적으로 어떤 문제가 있는건지 오류의 내용이 없어서 단지 올려주신 문구만 봤을때는 그냥 서버에 문제가 있다 정도의 정보라 알 수 있는 내용이 전혀 없습니다.

일단 지금 작업 환경이 어떤 상황인지 flask는 debug 모드로 동작중인 상황인지, 그리고 어떤 상황에서 오류가 어떻게 발생하는지가 좀 더 명확하게 정리를 하셔야 할 듯 합니다. 보통 flask 오류인 경우 디버그 모드 동작시 어떤 코드에서 어떤 문제가 나고 있는지를 알 수 있어야 합니다. 올려주신 내용처럼 서버에 문제가 있다 정도로는 확인 할 수 있는게 전혀 없습니다. 작성하시는 flask 코드를 올려주시는 것도 도움이 될 수 있으나 오류와 관련 있는 부분을 올려주셔야 확인 할 내용이 있습니다. 지금으로서는 제가 답변 드릴 수 있는 내용이 전혀 없는 상태 입니다.

Bokhee Hong님의 프로필 이미지
Bokhee Hong

작성한 질문수

질문하기