에러 다시 한 번 질문드립니다.
이전 질문글에서 jinja2 에러가 주석처리되있지만 {% %} 라는 부분이 있어서 에러가 뜬거일수 있다는 답변에 그 부분 지웠더니 바로 다른 에러가 떴습니다.
run.py와 write.html, view.html 모든 부분 다 올립니다.
주석처리되있던 한글로 쓴 설명도 다 지웠습니다.
run.py
# -*- coding: utf-8 -*-
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
import time
app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb"
mongo = PyMongo(app)
@app.template_filter("formatdatetime")
def format_datetime(value):
if value is None:
return ""
now_timestamp = time.time()
offset = datetime.fromtimestamp(
now_timestamp) - datetime.utcfromtimestamp(now_timestamp)
value = datetime.fromtimestamp((int(value) / 1000) + offset)
return value.strftime('%Y-%m-%d %H:%M:%S')
@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"),
"pubdate": data.get("pubdate"),
"view": data.get("view")
}
return render_template("view.html", result=result)
return abort(400)
@app.route("/write", methods=["POST", "GET"])
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
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>write</title>
</head>
<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>
view.html
<html>
{{result.title}}
<br />
{{result.name}}
<br />
{{result.pubdate|formatdatetime}}
<br />
{{result.view}}
<br />
{{result.contents}}
</html>
답변 2
1
위의 코드에서 오류가 발생하는 부분은 추측컨데
value = datetime.fromtimestamp((int(value) / 1000) + offset)
이 코드를 잘못 쓰신것 같습니다. 항상 개발자는 대소문자, 오타, 연산자 우선순위를 주의해야 하고 이런 아주 기본적인 실수로 인해 엄청난 시간을 잡아먹기도 합니다. 위의 코드에서 괄호의 위치가 강좌의 내용과 다릅니다. 이 부분을 확인해보시기 바랍니다.
PS> 질문을 주실때 어떤 오류가 나는지, 해당 오류가 가르키는 코드를 알려주셔야 제가 코드와 오류를 보고 답을 드릴 수 있습니다.
iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?
0
65
2
리스트 이동 시 창 에러 발생
0
75
1
배포후 회원 등록 후 로그인 에러...
0
73
2
내부 서버 오류
0
67
2
app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"
0
53
2
DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.
0
47
1
몽고db studio3T를 깔았는데
0
57
2
flake8과 linter
0
74
3
500이 뜹니다.
0
57
2
첨부파일 삭제
0
66
2
검색기능 질문
0
61
2
google.py
0
66
2
Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ
0
83
3
혹시 전체 코드 공개되어 있나요?
0
96
1
join.html 의 form 태그값 을 member_join() 에서 처리못함.
0
104
1
google.py 몽고db 샘플데이터 만들기
0
100
2
flake8 설치 이후 명령팔레트에서 linter가 안보입니다.
0
237
2
파이썬으로 만들어서 웹호스팅에 올릴경우
0
304
1
현재 구글검색 무한스크롤변경 문의합니다
0
297
1
몽고디비아틀라스로 추가 공부해서 올립니다.
0
218
1
IIS 500.19에러
0
660
2
버전 문제도 수정했는데 결과가 안나옵니다.
0
258
1
데이터베이스 저장관련 질문입니다.
0
270
1
test가 생기지 않습니다.
0
511
3





