- 首页列表显示全部问答:
- 将数据库查询结果传递到前端页面 Question.query.all()
- 前端页面循环显示整个列表。
- 问答排序
- 完成问答详情页布局:
- 包含问答的全部信息
- 评论区
- 以往评论列表显示区。
- 在首页点击问答标题,链接到相应详情页。
代码如下:
index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">python</a> </div> <div> <ul class="nav navbar-nav"> <li class="active"><a href="#">登录</a></li> <li><a href="#">注册</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 首页 <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a href="#">java</a></li> <li><a href="#">EJB</a></li> <li><a href="#">Jasper Report</a></li> <li class="divider"></li> </ul> </li> <li class="active"><a href="#">问答</a></li> </ul> </div> </div> </nav> <ul class="list-group"> <li class="list-group-item" style="width: 800px"> <a class="wrap-img" href="#" target="_blank"> <img src="http://www.bookmarkye.com/3.jpg" width="50px" > </a> <span class="glyphicon glyphicon-left" aria-hidden="true"></span> <a href="#" target="_blank">{{ user }}</a> <br> <a href="#">{{ title }}</a> <span class="badge">{{time }}</span> <p style="">{{ detail }} </p> </li> {% for foo in questions %} <li class="list-group-item" style="width: 800px"> <a class="wrap-img" href="#" target="_blank"> <img src="http://www.bookmarkye.com/3.jpg" width="50px" > </a> <span class="glyphicon glyphicon-left" aria-hidden="true"></span> <a href="#" target="_blank">{{foo.author.username }}</a> <br> <a href="{{ url_for('detail',question_id=foo.id)}}">{{ foo.title }}</a> <span class="badge">{{ foo.creat_time }}</span> <p style="">{{ foo.detail }} </p> {% endfor %} </ul> </body> </html>
detail.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row clearfix"> <div class="col-md-2 column"> </div> <div class="col-md-6 column"> <p> <h3>这是标题</h3> </p> <p> <textarea>这里输入评论内容</textarea> </p> <p> </p> <button type="button" class="btn btn-default">发送</button> <h1>用户评论</h1><br> <ul> <li class="list-group-item">这是第一条评论</li> <li class="list-group-item">这是第二条评论</li> <li class="list-group-item">这是第三条评论</li> </ul> </div> <div class="col-md-4 column"> </div> </div> </div> </body> </html>
py
from flask import Flask from flask import render_template,request,redirect,url_for,session import config from functools import wraps from datetime import datetime from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) class User(db.Model): __tablename__ = 'user' # 建立一个表user id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(20),nullable=False) password = db.Column(db.String(20),nullable=False) say = db.Column(db.String(50)) # db.create_all() class Question(db.Model): __tablename__ = 'question' id = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(100),nullable=False) detail = db.Column(db.Text,nullable=False) creat_time = db.Column(db.DateTime,default=datetime.now) author_id=db.Column(db.Integer,db.ForeignKey('user.id')) author=db.relationship('User',backref=db.backref('question')) # db.create_all() #添加数据 # user=User(username='hua',password='11111') # db.session.add(user) # db.session.commit() # # 添加数据 # question=Question(title='huangdahua1',detail='111') # db.session.add(question) # db.session.commit() @app.route('/') def index(): context={ 'user':'huadahua', 'title':'大家好”', 'time':'2017-09-29', 'detail':'这是我的python', 'questions':Question.query.order_by('-creat_time').all() } return render_template('index.html',**context) @app.route('/detail/<question_id>') def detail(question_id): quest=Question.query.filter(Question.id==question_id).first() return render_template('detail.html',ques=quest) if __name__ == '__main__': app.run()
运行结果: