评论列表显示及排序,个人中心显示

1.显示所有评论
{% for foo in ques.comments %}

 

2.所有评论排序
uquestion = db.relationship('Question', backref=db.backref('comments', order_by=creat_time.desc))

 

3.显示评论条数
{{ ques.comments|length }}


1题代码如下:

<h3>评论区:({{ ques.comments|length }})
</h3><br><div class="basic_box" style="padding-bottom: 50px;"><ul class="list-group" style="margin-bottom: 10px">{% for qu in ques.comments %}<li class="list-group-item" style="width: 800px"><a class="wrap-img" href="#" target="_blank"><img src="{{ qu.author.image }}" width="50px"></a><span class="glyphicon glyphicon-left" aria-hidden="true"></span><br><a href="{{ url_for('person',user_id=qu.author.id) }}">{{ qu.author.username }}</a><span class="badge">评论时间:{{ qu.creat_time }}</span><p style="">{{ qu.detail }}</p></li>{% endfor %}</ul>

2题代码

#进入每篇文章详情页
@app.route('/detail/<question_id>',methods=['GET','POST'])def detail(question_id):quest=Question.query.filter(Question.id==question_id).first()context={'comments':Comment.query.filter(Comment.question_id==question_id).order_by('-creat_time').all()}return render_template('detail.html',**context,ques=quest)

运行结果:

 

 

 

 

4.完成个人中心

1.个人中心的页面布局(html文件及相应的样式文件)

html文件如下:

{% extends 'basic.html' %}
{% block title %} 个人中心{% endblock %}{% block aa %}<div class="container"><div class="row clearfix"><div class="col-md-2 column"></div><div class="col-md-6 column"><h1><img src="{{ img }}" width="50px">{{usern }}</h1><br>全部问答<div class="basic_box" style="padding-bottom: 50px;"><ul class="list-group">{% for qu in ques %}<li class="list-group-item" style="width: 800px"><a class="wrap-img" href="#" target="_blank"><img src="{{ qu.author.image }}" width="50px"></a><span class="glyphicon glyphicon-left" aria-hidden="true"></span><a href="{{ url_for('person',user_id=qu.author.id) }}" target="_blank">{{ qu.author.username }}</a><br><a href="{{ url_for('detail',question_id=qu.id) }}">{{qu.title }}</a><br><span class="badge">发布时间:{{ qu.creat_time }}</span><p style="">{{ qu.detail }}</p></li>{% endfor %}</ul>
</div><h1><img src="{{ img }}" width="50px">{{usern }}</h1><br>全部评论<div class="basic_box" style="padding-bottom: 50px;"><ul class="list-group" style="margin-bottom: 10px">{% for qu in users %}<li class="list-group-item" style="width: 800px"><a class="wrap-img" href="#" target="_blank"><img src="{{ qu.author.image }}" width="50px"></a><span class="glyphicon glyphicon-left" aria-hidden="true"></span><br><a href="#">{{ qu.author.username }}</a><span class="badge">评论时间:{{ qu.creat_time }}</span><p style="">{{ qu.detail }}</p></li>{% endfor %}</ul>
<br>
<br>
<h1><img src="{{ img }}" width="50px">{{usern }}</h1><br>个人信息<div class="basic_box" style="padding-bottom: 50px;"><ul class="list-group" style="margin-bottom: 10px">
{#      {% for qu in users %}#}<li class="list-group-item" style="width: 800px"> 用户:{{ usern }}</li><li class="list-group-item" style="width: 800px"> 编号:{{ id }}</li><li class="list-group-item" style="width: 800px"> 问答数:{{ ques|length }}</li><li class="list-group-item" style="width: 800px"> 评论数:{{ comment|length }}</li>{#      {% endfor %}#}</ul></div><div class="col-md-4 column"></div></div>
</div></div></div>{% endblock %}

 

 

 

2.定义视图函数def usercenter(user_id):

# 个人中心
@app.route('/person/<user_id>',methods=['GET','POST'])
def person(user_id):user = User.query.filter(User.id == user_id).first()context = {'img':user.image,'id':user_id,'usern':user.username,'ques': Question.query.filter(Question.author_id == user_id).order_by('-creat_time').all(),'users': Comment.query.filter(Comment.author_id == user_id).order_by('-creat_time').all(),'comment': user.comments}return render_template('person.html', **context)

 

3.向前端页面传递参数

  context = {'img':user.image,'id':user_id,'usern':user.username,'ques': Question.query.filter(Question.author_id == user_id).order_by('-creat_time').all(),'users': Comment.query.filter(Comment.author_id == user_id).order_by('-creat_time').all(),'comment': user.comments}
<h1><img src="{{ img }}" width="50px">{{usern }}</h1><br>全部问答<h1><img src="{{ img }}" width="50px">{{usern }}</h1><br>全部评论<li class="list-group-item" style="width: 800px"> 用户:{{ usern }}</li><li class="list-group-item" style="width: 800px"> 编号:{{ id }}</li><li class="list-group-item" style="width: 800px"> 问答数:{{ ques|length }}</li><li class="list-group-item" style="width: 800px"> 评论数:{{ comment|length }}</li>

 

4.页面显示相应数据

发布的全部问答

发布的全部评论

个人信息

效果如下:

 

5.各个页面链接到个人中心

导航栏的昵称连接:

 {% if username %}<li><a href="{{ url_for('person',user_id=user.id) }}"><h2>{{ username }}</h2></a></li><li><a href="{{ url_for('logout') }}"><h2>注销</h2></a></li>{% else %}<li><a href="{{ url_for('login') }}"><h2>登录</h2></a></li><li><a href="{{ url_for('zhuce') }}"><h2>注册</h2></a></li>{% endif %}<li><a href="{{ url_for('question') }}"><h2>问答</h2></a></li>
</ul>

主页昵称连接:

  <a href="{{ url_for('person',user_id=foo.author.id) }}" target="_blank">{{ foo.author.username }}</a>

评论列表里面的昵称连接:

                <a href="{{ url_for('person',user_id=qu.author.id) }}">{{ qu.author.username }}</a>

文章中作者名字连接:

   作者:<a href="{{ url_for('person',user_id=ques.author.id) }}">{{ ques.author.username }}</a>

 

转载于:https://www.cnblogs.com/decadeyu/p/8029488.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程现行国标汇集

GB/T 8566-2007 《信息技术 软件生存周期过程》GB/T 8567-2006 《计算机软件文档编制规范》 GB/T 9385-2008《计算机软件需求规格说明规范》GB/T 9386-2008 《计算机软件测试文档编制规范》 GB/T 11457-2006《信息技术 软件工程术语》GB/T 14394-2008《计算机软件可靠性和可维护…

oracle listagg方法,Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg...

Oracle实现字符串拼接和分离功能的方法(LISTAGG函数)&#xff0c;oraclelistagg字符串拼接(String Aggregation Techniques)是数据处理时经常需要用到一个技术&#xff0c;比如需要按时间顺序拼装一个快递的运输记录&#xff0c;或者将流程中各个环节的处理人拼装为一个字符串。…

他俩都曾是技术大牛,创业这些年来有怎样的苦与乐?

这是头哥侃码的第263篇原创国庆假期回来&#xff0c;「头哥唠 B 唠」的直播仍在继续。这次我邀请了我工作上的老板和朋友&#xff0c;一起聊了聊关于 “技术创业路上的苦与乐”。熟悉他们两位的都知道&#xff0c;可以说是技术出身&#xff0c;然后创业当老板的代表。大家都知道…

maven,gradle本地缓存位置

gradle: 配置系统环境变量GRADLE_USER_HOME即可&#xff0c;值为缓存位置。 maven: 修改settings文件&#xff1a;maven的home路径下的conf文件夹下的settings.xml 对于有些IDEA&#xff0c;还需要配置。但是不要再打开项目后的FILE-->settings配置&#xff0c;而是需要在选…

git和php的区别,Git与Github的有什么区别

Git是一款免费&#xff0c;开源的分布是版本&#xff0c;用于敏捷高效的处理任何或小或大的项目。分布式相对于集中式的最大区别在于开发者可以提到本地&#xff0c;每个开发者通过克隆&#xff0c;在本地磁盘内拷贝一个完整的GIt仓库。Git的功能特性&#xff1a;1.从服务器上克…

E20171214-sl

well-grounded  地基打的好 relevent adj. 有关的&#xff0c;中肯的; 相关联的proposal n. 建议; 提议; 求婚; 〈美〉投标;转载于:https://www.cnblogs.com/lancgg/p/8281675.html

客户端嵌套 Web 页面如何选择

客户端嵌套 Web 页面如何选择客户端嵌套 Web 页面如何选择作者&#xff1a;驚鏵在使用客户端嵌套WEB页面有一下几种方案&#xff1a;WebView2[1]Electron[2]NW.js[3]sciter[4]miniblink[5]现在国内众多桌面程序都是用了以下五种&#xff0c;因为它跨平台更为方便&#x1f447;。…

每天练习50个shell

1、统计日志每天IP访问量前十 awk {print $1} 1.log | sort -n | uniq -c | sort -n 解释&#xff1a;&#xff08;1&#xff09;awk 命令在分段方面比较有优势&#xff0c;这里的{print $1}将第一段打印出来&#xff0c;awk可以用-F指定分隔符&#xff0c;如果不指定分隔符&am…

【Tomcat】Tomcat配置与优化(内存、并发、管理)【自己配置】

一、JVM内存配置优化 主要通过以下的几个jvm参数来设置堆内存的&#xff1a; -Xmx512m 最大总堆内存&#xff0c;一般设置为物理内存的1/4 -Xms512m 初始总堆内存&#xff0c;一般将它设置的和最大堆内存一样大&#xff0c;这样就不需要根据当前堆使用情况而调整堆的大…

oracle 网关下载,oracle透明网关访问sqlserver2000

oracle透明网关访问sqlserver2000介绍oracle 10g透明网关访问sqlserver2000一、环境如下:ORACLE 10g 安装在:192.168.0.250 的window2003 server(版本&#xff1a;Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production) SqlServer 2000安装在:192.16…

C++和C#的指针小解

昨天和赵崇说了一下工作的事情&#xff0c;说起了性能问题就讨论起了数据结果和指针对性能的影响。曾经一直没有想到这方面的事情&#xff0c;这几天专门抽时间回想一下这方面的知识&#xff0c;然后一点一点的总结一下&#xff0c;看看数据结构和指针在咱们代码中是怎样实现效…

使用RoleBasedAuthorization实现基于用户角色的访问权限控制

本文将介绍如何通过 Sang.AspNetCore.RoleBasedAuthorization[1] 库实现 RBAC 权限管理。使用介绍Step 1添加库 Sang.AspNetCore.RoleBasedAuthorizationInstall-Package Sang.AspNetCore.RoleBasedAuthorizationStep 2在 Program.cs 中添加builder.Services.AddSangRoleBasedA…

【2018-11-15】中证1000指数的估值详情

中证1000指数选取中证500和沪深300指数样本股以外的&#xff0c;流动性好的1000只股票组成&#xff0c;与沪深300 和中证500 等形成互补。 中证1000的个股大多数是由市场上流通市值排名在 800 到 1800 名之间的个股组成&#xff0c;是一个适用范围较广的小盘指数。 中证1000的…

[Leetcode Week15]Populating Next Right Pointers in Each Node

Populating Next Right Pointers in Each Node 题解 原创文章&#xff0c;拒绝转载 题目来源&#xff1a;https://leetcode.com/problems/populating-next-right-pointers-in-each-node/description/ Description Given a binary tree struct TreeLinkNode {TreeLinkNode *left…

php 数组 1 开始,php数组使用1

1、array_values($arr) 将数组转换成索引数组$arr1 [id>10,name>杨过,sex>male,salary>8900];echo .var_export(array_values($arr1),true).;2、array_column($arr,$col,$boll); 获取多维数组的列表组成的数组。$arr2 [];$arr2 [[id>10,name>杨过,sex>…

印度光伏巨头Adani与华为签署500MW采购合同

日前&#xff0c;印度光伏巨头Adani与华为签订了采购合同。Adani未来一年的项目全部采用华为FusionSolar3.0智能光伏解决方案&#xff0c;首期500MW采购合同已经签署&#xff0c;将采购最新的智能光伏控制器&#xff08;组串逆变器&#xff09;SUN2000-43KTL、数据采集器SmartL…

宣布 .NET MAUI 支持 .NET 7 RC 2

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;6分钟)支持 .NET 7 Release Candidate 2 的 .NET 多平台应用程序 UI (MAUI) 现在可在 Windows 和 Mac 上的 Visual Studio 17.4 Preview 4 中使用。RC2 的主要主题是质量和对带有 iOS 16 的 Xcode 14 的 .NET 支持。此…

linux c文件操作,Linux C 文件的输入/输出操作

10.1 文件I/O操作概述在Linux系统中&#xff0c;文件I/O操作可以分为两类&#xff0c;一类是基于文件描述符的I/O操作&#xff0c;另一类是基于数据流的I/O操作。10.1.1 文件描述符简介在文件操作一章中&#xff0c;也经常提到文件描述符这个概念。所谓文件描述符&#xff0c;就…

个人中心标签页导航

新页面userbase.html,用<ul ><li role"presentation"> 实现标签页导航。<ul class"nav nav-tabs"> <li role"presentation"><a href"#">Home</a></li> <li role"presentation&qu…

智慧城市免费WiFi覆盖怎么实施?武邑开启智慧生活模式

“真没想到武邑这个国家级贫困县也能够随地使用无线网络&#xff0c;我初次考察就喜欢上了这里。”准备前来武邑县投资的客商王先生说。日前&#xff0c;随着县城广场、商场等公共场所的免费WiFi覆盖&#xff0c;及移动电子商务借势O2O的快速发展&#xff0c;衡水市武邑县正在逐…