해결된 질문
작성
·
322
1
안녕하세요 강의 잘 듣고있습니다.
강의 처음부터 끝까지 잘 따라했고 문제없이 실행되는데 title 부분이 null로 저정됩니다.
크롭에서 내용 입력하고 제출은 문제 없이 잘 됩니다.
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 이라는 이름이 어딘가에서 재사용되고 있을 수 있으니 그 부분을 확인해보시기 바랍니다.
계속 해결이 안되시면 다시 질문 주시기 바랍니다.
노승아
2022.10.06 오후 3:04
앗 답변 감사합니다 ! 알려주신 방법으로 시도하다가 오타난걸 발견했고 오타 수정하고 다시 하니까 잘 나오네요 ㅎㅎ 감사합니다 !