projects/myproject/pybo/templates/question/question_detail.html
<h1>{{ question.subject }}</h1>
<div>
{{ question.content }}
</div>
<form action="{{ url_for('answer.create', question_id=question.id) }}" method="post">
<textarea name="content" id="content" rows="15"></textarea>
<input type="submit" value="답변등록">
</form>
# 답변 블루프린트 만들기
projects/myproject/pybo/views/answer_views.py
from datetime import datetime
from flask import Blueprint, url_for, request
from werkzeug.utils import redirect
from pybo import db
from pybo.models import Question, Answer
bp = Blueprint('answer', __name__, url_prefix='/answer')
@bp.route('/create/<int:question_id>', methods=('POST',))
def create(question_id):
question = Question.query.get_or_404(question_id)
content = request.form['content']
answer = Answer(content=content, create_date=datetime.now())
question.answer_set.append(answer)
db.session.commit()
return redirect(url_for('question.detail', question_id=question_id))
# 답변 블루프린트 등록하기
from flask import Flask
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
import config
db = SQLAlchemy()
migrate = Migrate()
def create_app():
app = Flask(__name__)
app.config.from_object(config)
# ORM
db.init_app(app)
migrate.init_app(app, db)
from . import models
# 블루프린트
from .views import main_views, question_views, answer_views
app.register_blueprint(main_views.bp)
app.register_blueprint(question_views.bp)
app.register_blueprint(answer_views.bp)
return app
http://localhost:5000/question/detail/2/
# 답변 표시하기 (++스타일시트 작성하기)
(myproject) c:\projects\myproject> cd pybo
(myproject) c:\projects\myproject\pybo> mkdir static
projects/myproject/pybo/static/style.css
textarea {
width:100%;
}
input[type=submit] {
margin-top:10px;
}
projects\myproject\pybo\templates\question\question_detail.html
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<h1>{{ question.subject }}</h1>
<div>
{{ question.content }}
</div>
<h5>{{ question.answer_set|length }}개의 답변이 있습니다.</h5>
<div>
<ul>
{% for answer in question.answer_set %}
<li>{{ answer.content }}</li>
{% endfor %}
</ul>
</div>
<form action="{{ url_for('answer.create', question_id=question.id) }}" method="post">
<textarea name="content" id="content" rows="15"></textarea>
<input type="submit" value="답변등록">
</form>
http://localhost:5000/question/detail/2/