从首页问答标题到问答详情页

    1. 主PY文件写视图函数,带id参数。 
      @app.route('/detail/<question_id>')
      def detail(question_id):
          quest = 
          return render_template('detail.html', ques = quest) 
    2. 首页标题的标签做带参数的链接。
            {{ url_for('detail',question_id = foo.id) }}

    3. 在详情页将数据的显示在恰当的位置。 
      {{ ques.title}}
      {{ ques.id  }}{{  ques.creat_time }}
      {{ ques.author.username }} 
      {{ ques.detail }}
    4. 建立评论的对象关系映射:

      class Comment(db.Model):
          __tablename__='comment'

    5.  尝试实现发布评论。

      class Comment(db.Model):
          __tablename__ = 'comment'
          id = db.Column(db.Integer, primary_key=True, autoincrement=True)
          author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
          question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
          create_time = db.Column(db.DateTime, default=datetime.now)
          detail = db.Column(db.Text, nullable=False)
          question = db.relationship('Question', backref=db.backref('comment'))
          author = db.relationship('User', backref=db.backref('comment'))
      @app.route('/sywdxq/<question_id>')
      def sywdxq(question_id):
          quest = Question.query.filter(Question.id == question_id).first()
          return render_template("sywdxq.html",ques=quest)
      
      def loginFirst(func):
          #行动前需要登录,定义装饰器
          @wraps(func)
          def wrapper(*args,**kwargs):
              if session.get('user'):
                  return func(*args,**kwargs)
              else:
                  return redirect(url_for('login'))
          return wrapper
      
      
      @app.route('/sywdxq',methods=['GET','POST'])
      @loginFirst
      def sywdxq():
          if request.method=='GET':
              return render_template('sywenda.html')
          else:
              title=request.form.get('title')
              detail=request.form.get('detail')
              author_id=User.query.filter(User.username==session.get('user')).first().id
              question = Question(title=title,detail=detail,author_id=author_id)
              db.session.add(question)  # 数据库,添加操作
              db.session.commit()
              return redirect(url_for('sywdxq'))
        <div class="page-headr">
                  <h1>welcome !!!</h1><br>
      
                  <h3>Title:{{ ques.title }}<br>
                      <small class="ss" >author:{{ ques.author.username }}
                          <br><span class="badge">发布时间:{{ ques.creat_time }}</span></small>
                  </h3>
                  <hr>
                  <p>detail:{{ ques.detail }}</p>
                  <hr>
                   <form action="{{url_for('comment')}}" method="post" style="">
                      <div class="form-group">
      
                  <textarea name="new_comment" class="form-control" rows="5" id="new-comment"
                            placeholder="write your comments" style="width: 800px"></textarea><br>
                      </div>
                      <button type="submit" class="btn btn-default" style="width:100px "> 发送
                      </button>
                  </form>
      {#                            <h4>comment:({{ ques.comments|length }})</h4>#}
                  <ul class="list-group" style="margin: 10px"></ul>
              </div>
          </div>
      
          <div class="col-md-2 column "></div>
      
      {% endblock %}

       

posted on 2017-12-06 19:31  104鲍珊珊  阅读(79)  评论(0编辑  收藏  举报

导航