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

Victoria님의 프로필 이미지
Victoria

작성한 질문수

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

게시판만들기 - 글 쓰기

title 부분이 null 로 저장됩니다

해결된 질문

작성

·

322

1

안녕하세요 강의 잘 듣고있습니다.

강의 처음부터 끝까지 잘 따라했고 문제없이 실행되는데 title 부분이 null로 저정됩니다.

크롭에서 내용 입력하고 제출은 문제 없이 잘 됩니다.

title-null robo.png


vscode 에서 터미널로 결과를 볼때는 none 이라고 나오구요

print(name, title, contents)

>테스터 None ㅎㅎㅎㅎㅎㅎ

from flask import Flask
from flask import request
from flask import render_template
from flask_pymongo import PyMongo
from datetime import datetime


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


@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")
        print(name, title, contents)

        current_utc_time = round(datetime.utcnow().timestamp() * 1000)
        board = mongo.db.board
        post = {
            "name": name,
            "title": title,
            "contents": contents,
            "pubdate": current_utc_time,
            "view": 0
        }

        x = board.insert_one(post)
        print(x.inserted_id)
        return str(x.inserted_id)
    else:
        return render_template("write.html")


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

 


write.html

<html>
    <body>
        <table>
            <form name="form" method="POST" action="/write">
            <tr>
                <td>작성자</td>
                <td><input type="text" name="name"></td>
            </tr>
            <tr>
                <td>제목</td>
                <td><input type="text" name="title>"></td>
            </tr>
            <tr>
                <td>내용</td>
                <td><textarea name="contents"></textarea></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit"></td>
            </tr>
            </form>
        </table>
    </body>
</html>

 

뭐가 문제일까요?...?

 

답변 1

0

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

일단 내용만으로는 별 문제는 없어보입니다만..(저한테도 안보이는것일수도 있습니다.)

원래 오류는 사람의 혼을 빼놓는 능력이 있어서...

일단 파이썬 코드쪽 request.form.title 에서도 None이 나오면 데이터가 정상적으로 받아오질 못했다는 얘기인데 그러면 일단 title 대신 title1 과 같이 name을 변경해보시고 input 항목을 하나 더 만들어서 <input type="text" name="test"> 처럼 새로운 항목도 문제가 없는지 확인해보시기 바랍니다.

만약 이름을 변경하고 항목을 추가했을때 별 문제가 없다면 title 이라는 이름이 어딘가에서 재사용되고 있을 수 있으니 그 부분을 확인해보시기 바랍니다.

계속 해결이 안되시면 다시 질문 주시기 바랍니다.

Victoria님의 프로필 이미지
Victoria
질문자


노승아

2022.10.06 오후 3:04

앗 답변 감사합니다 ! 알려주신 방법으로 시도하다가 오타난걸 발견했고 오타 수정하고 다시 하니까 잘 나오네요 ㅎㅎ 감사합니다 !

Victoria님의 프로필 이미지
Victoria

작성한 질문수

질문하기