1.首页功能
1.1 首页页面代码更改
首页更改为继承base.html的形式
更改index.html的代码如下
{% extends "base.html" %}
{% block title %}问答平台-首页{% endblock %}
{% block head %}
<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">
{% endblock %}
{% block body %}
<div class="row" style="margin-top: 20px;">
<div class="col"></div>
<div class="col-10">
<ul class="question-ul">
{% for question in questions %}
<li>
<div class="side-question">
<img class="side-question-avatar" src="{{ url_for('static',filename='images/avatar.jpg') }}" alt="">
</div>
<div class="question-main">
<div class="question-title"><a href="#">{{question.title}}</a></div>
<div class="question-content">{{question.content}}</div>
<div class="question-detail">
<span class="question-author">{{question.author.username}}</span>
<span class="question-time">{{question.create_time}}</span>
</div>
</div>
</li>
{% endfor %}
</ul>
</div>
<div class="col"></div>
</div>
{% endblock %}
1.2 首页视图函数更改
更改qa.py中index的代码
@bp.route("/")
def index():
questions = QuestionModel.query.order_by(QuestionModel.create_time.desc()).all()
return render_template("index.html",questions=questions)
1.3 测试访问首页
2.问答详情页功能
2.1 添加问答详情的视图函数
在qa.py中添加如下代码
@bp.route("/qa/detail/<qa_id>")
def qa_detail(qa_id):
question = QuestionModel.query.get(qa_id)
return render_template("detail.html",question=question)
2.2 问答详情页改造
{% extends "base.html" %}
{% block title %}问答平台-{{question.title}}{% endblock %}
{% block head %}
<link rel="stylesheet" href="{{ url_for('static',filename='css/detail.css') }}">
{% endblock %}
{% block body %}
<div class="row" style="margin-top: 20px;">
<div class="col"></div>
<div class="col-10" style="background-color: #fff;padding: 20px;">
<h3 class="page-title">{{question.title}}</h3>
<p class="question-info">
<span>作者:{{question.author.username}}</span>
<span>时间:{{question.create_time}}</span>
</p>
<hr>
<p class="question-content">{{ question.content }}</p>
<hr>
<h4 class="comment-group-title">评论(2):</h4>
<form action="#" method="post">
<div class="form-group">
<input type="text" placeholder="请填写评论" name="content" class="form-control">
</div>
<div class="form-group" style="text-align: right;">
<button class="btn btn-primary">评论</button>
</div>
</form>
<ul class="comment-group">
<li>
<div class="user-info">
<img class="avatar" src="./static/images/avatar.jpg" alt="">
<span class="username">法外狂徒张三</span>
<span class="create-time">2022年10月30日</span>
</div>
<p class="comment-content">讲得真好!</p>
</li>
<li>
<div class="user-info">
<img class="avatar" src="./static/images/avatar.jpg" alt="">
<span class="username">我方律师张伟</span>
<span class="create-time">2022年10月30日</span>
</div>
<p class="comment-content">我张伟表示不服!</p>
</li>
</ul>
</div>
<div class="col"></div>
</div>
{% endblock %}
2.3 测试访问
更改index.html中的每个问答跳转到问答详情页的跳转URL
<div class="question-title"><a href="{{ url_for('qa.qa_detail',qa_id=question.id) }}">{{question.title}}</a></div>
刷新首页,点击问答标题,看看是否能跳转到问答详情页