inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

게시판만들기 - 글 상세보기

게시판 작성 후 상세보기로 redirect시 오류

672

thisauto

작성한 질문수 2

1

훌륭하신 강의 덕분에 잘 따라가고 있는데... 여기서 에러가 나서 도저히 진도가 안나가네요..

게시판 작성 후 -->  게시판상세보기에서 (DB은 입력되지만,  redirect(url_for ~~)에서 에러가 발생해서 진도가 못나가고 있어요
구글링을 해 봤는데 도저히 해결책이 없습니다.

--------------------------------------------------------------------

from flask import Flask
from flask import request
from flask import render_template
from flask_pymongo import PyMongo
from datetime import datetime
from bson.objectid import ObjectId
from flask import abort
from flask import redirect
from flask import url_for


app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb"
mongo = PyMongo(app)
       

@app.route('/view')
def board_view():
    idx = request.args.get("idx")
    if idx is not None:
        board = mongo.db.board
        data = board.find_one({"_id":ObjectId(idx)})
        if data is not None:
            result = {
                "id" : data.get("id"),
                "name" : data.get("name"),
                "title" : data.get("title"),
                "contents" : data.get("contents"),
                "isdate" : data.get("isdate"),
                "view" : data.get("view")
            }
            return render_template("view.html", result=result)
    return ""


@app.route('/write', methods=["GET","POST"])
def board_write():
    if request.method == "POST":
        name = request.form.get("name")
        title = request.form.get("title")
        contents = request.form.get("contents")
        isdate = round(datetime.utcnow().timestamp() * 1000)
        view=0
        print(name,title,contents,isdate,view)
        board = mongo.db.board
        post = {
            "name" : name,
            "title" : title,
            "contents" : contents,
            "isdate" : isdate,
            "view" : view
        }
        x = board.insert_one(post)
        print(x.inserted_id)
        return redirect(url_for("board_view"),idx=x.inserted_id)
    else:
        return render_template("write.html")


if __name__ == "__main__":
    app.run(host="127.0.0.1", debug=True, port=5000)

 

 

--------------------------------------------------------------------

x = board.insert_one(post)
print(x.inserted_id)

return redirect(url_for("board_view"),idx=x.inserted_id) 도 안되고

return redirect(url_for("board_view"),idx=str(x.inserted_id)) 이것도 안됩네요

 
 
       

python

답변 1

0

남박사

에러의 내용을 보면 redirect() got an unexpected keyword argument 'idx' 라고 되어있습니다. 이 말인즉슨 idx 라는 키워드 인수를 인식하지 못한다는 이야기로 볼 수 있는데 

return redirect(url_for("board_view"),idx=x.inserted_id) 

여기서 idx 가 redirect 의 인자로 넘기셨는데 

return redirect(url_for("board_view", idx=x.inserted_id))

이렇게 url_for() 함수의 인자로 넘기셔야 합니다.

0

thisauto

아.. 넵 감사합니다..

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

83

2

리스트 이동 시 창 에러 발생

0

89

1

배포후 회원 등록 후 로그인 에러...

0

87

2

내부 서버 오류

0

85

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

65

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

62

1

몽고db studio3T를 깔았는데

0

70

2

flake8과 linter

0

88

3

500이 뜹니다.

0

66

2

첨부파일 삭제

0

73

2

검색기능 질문

0

74

2

google.py

0

75

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

92

3

혹시 전체 코드 공개되어 있나요?

0

100

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

112

1

google.py 몽고db 샘플데이터 만들기

0

110

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

250

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

314

1

현재 구글검색 무한스크롤변경 문의합니다

0

306

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

222

1

IIS 500.19에러

0

667

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

264

1

데이터베이스 저장관련 질문입니다.

0

279

1

test가 생기지 않습니다.

0

517

3