600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Flask项目(新闻网站)—— 新闻详情页(点击量累加 用户代码封装)

Flask项目(新闻网站)—— 新闻详情页(点击量累加 用户代码封装)

时间:2020-07-31 17:45:02

相关推荐

Flask项目(新闻网站)—— 新闻详情页(点击量累加 用户代码封装)

首先在modules目录,新建一个目录‘news’(关于新闻详情页的后台)

news目录,init.py

from flask import Blueprintnews_blue = Blueprint('news_blue',__name__,url_prefix="/news")from . import views

info目录,init.py(蓝图注册)

from info.modules.news import news_blueapp.register_blueprint(news_blue)

news目录,views.py(详情页的视图函数)

@news_blue.route("/detail/<int:id>")@get_userdef detail(id):"""1.获取用户信息2.获取新闻排行相关内容3.查询新闻数据4.点击量累加:param id: :return: """# # 1.获取用户信息# user_id = session.get('id')### user = None# try:#user = User.query.filter_by(id=user_id).first()# except Exception as e:#current_app.logger.error(e)#abort(500)user = g.user# 2.获取新闻排行相关内容news_clicks = []try:news_clicks = News.query.order_by(News.clicks.desc()).limit(6)except Exception as e:current_app.logger.error(e)abort(500)# 3.查询新闻数据news = Nonetry:news = News.query.filter_by(id=id).first()except Exception as e:current_app.logger.error(e)abort(500)# 4.点击量累加if news:news.clicks += 1try:mit()except Exception as e:current_app.logger.error(e)db.session.rollback()abort(500)context = {"user": user,"news_clicks": news_clicks,"news":news}return render_template('news/detail.html',context=context)

用户代码封装,info目录下的utils目录,comment.py,添加如下代码

def get_user(func):def wrapper(*args,**kwargs):# 1.获取用户信息user_id = session.get('id')user = Nonetry:user = User.query.filter_by(id=user_id).first()except Exception as e:current_app.logger.error(e)abort(500)g.user = userreturn func(*args,**kwargs)return wrapper

index目录,views.py(找到相关的用户代码,index函数)

# user_id = session.get('id')# user = None# try:#user = User.query.filter_by(id=user_id).first()# except Exception as e:#current_app.logger.error(e)#abort(500)user = g.user

前台修改

detail.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>文章详情页</title><link rel="stylesheet" type="text/css" href="../../static/news/css/reset.css"><link rel="stylesheet" type="text/css" href="../../static/news/css/main.css"><script type="text/javascript" src="../../static/news/js/jquery-1.12.4.min.js"></script><script type="text/javascript" src="../../static/news/js/detail.js"></script><script type="text/javascript" src="../../static/news/js/main.js"></script></head><body><div class="header_con"><div class="header"><a href="#" class="logo fl"><img src="../../static/news/images/logo.png" alt="logo"></a>{% if context.user %}<div class="user_login fr"><img src="../../static/news/images/person01.png" class="lgin_pic"><a href="#">{{ context.user.nick_name }}</a><a href="/passport/logout" onclick="logout()">退出</a></div>{% else %}<div class="user_btns fr"><a href="javascript:;" class="login_btn">登录</a> / <a href="javascript:;" class="register_btn">注册</a></div>{% endif %}</div></div><div class="conter_con"><div class="detail_con fl"><h3>{{ context.news.title }}</h3><div class="detail_about clearfix"><span class="time_souce fl">{{ context.news.create_time }}来源: {{ context.news.source }}</span><span class="comment fr">{{ context.news.clicks }}</span></div><p class="summary">{{ context.news.digest }}</p>{{ context.news.content | safe }}<a href="javascript:;" class="collection block-center">收藏</a><a href="javascript:;" class="collected block-center" style="display: none"><span class="out">已收藏</span><spanclass="over">取消收藏</span></a>{% if context.user %}<form action="" class="comment_form"><div class="person_pic"><img src="../../static/news/images/cat.jpg" alt="用户图标"></div><textarea placeholder="请发表您的评论" class="comment_input"></textarea><input type="submit" name="" value="评 论" class="comment_sub"></form>{% else %}<div class="comment_form_logout">登录发表你的评论</div>{% endif %}<div class="comment_count">4条评论</div><div class="comment_list_con"><div class="comment_list"><div class="person_pic fl"><img src="../../static/news/images/worm.jpg" alt="用户图标"></div><div class="user_name fl">用户张山</div><div class="comment_text fl">遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。</div><div class="reply_text_con fl"><div class="user_name2">用户李思</div><div class="reply_text">遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。</div></div><div class="comment_time fl">-01-01 00:00:00</div><a href="javascript:;" class="comment_up has_comment_up fr">1</a><a href="javascript:;" class="comment_reply fr">回复</a><from class="reply_form fl"><textarea class="reply_input"></textarea><input type="submit" name="" value="回复" class="reply_sub fr"><input type="reset" name="" value="取消" class="reply_cancel fr"></from></div><div class="comment_list"><div class="person_pic fl"><img src="../../static/news/images/worm.jpg" alt="用户图标"></div><div class="user_name fl">用户张山</div><div class="comment_text fl">遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。</div><div class="comment_time fl">-01-01 00:00:00</div><a href="javascript:;" class="comment_up fr">赞</a><a href="javascript:;" class="comment_reply fr">回复</a><from class="reply_form fl"><textarea class="reply_input"></textarea><input type="submit" name="" value="回复" class="reply_sub fr"><input type="reset" name="" value="取消" class="reply_cancel fr"></from></div><div class="comment_list"><div class="person_pic fl"><img src="../../static/news/images/worm.jpg" alt="用户图标"></div><div class="user_name fl">用户张山</div><div class="comment_text fl">遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。</div><div class="comment_time fl">-01-01 00:00:00</div><a href="javascript:;" class="comment_up fr">赞</a><a href="javascript:;" class="comment_reply fr">回复</a><from class="reply_form fl"><textarea class="reply_input"></textarea><input type="submit" name="" value="回复" class="reply_sub fr"><input type="reset" name="" value="取消" class="reply_cancel fr"></from></div><div class="comment_list"><div class="person_pic fl"><img src="../../static/news/images/worm.jpg" alt="用户图标"></div><div class="user_name fl">用户张山</div><div class="comment_text fl">遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。</div><div class="comment_time fl">-01-01 00:00:00</div><a href="javascript:;" class="comment_up fr">赞</a><a href="javascript:;" class="comment_reply fr">回复</a><from class="reply_form fl"><textarea class="reply_input"></textarea><input type="submit" name="" value="回复" class="reply_sub fr"><input type="reset" name="" value="取消" class="reply_cancel fr"></from></div></div></div><div class="rank_con fr"><div class="author_card"><a href="#" class="author_pic"><img src="../../static/news/images/user_pic.png" alt="author_pic"></a><a href="#" class="author_name">张大山</a><div class="author_resume">张大山的简介,张大山</div><div class="writings"><span>总篇数</span><b>23</b></div><div class="follows"><span>粉丝</span><b>36</b></div><a href="javascript:;" class="focus fr">关注</a><a href="javascript:;" class="focused fr"><span class="out">已关注</span><span class="over">取消关注</span></a></div><div class="rank_title"><h3>点击排行</h3></div><ul class="rank_list">{% for news in context.news_clicks %}<li><span class="{{ loop.index | rank }}">{{ loop.index }}</span><a href="#">{{ news.title }}</a></li>{% endfor %}</ul></div></div><div class="footer"><div class="footer_links"><a href="">关于我们</a><span>|</span><a href="">联系我们</a><span>|</span><a href="">招聘人才</a><span>|</span><a href="">友情链接</a></div><p class="copyright">CopyRight © 新经资讯信息技术有限公司 All Rights Reserved<br/>电话:010-****888 京ICP备*******8号</p></div><!-- 登录表单 --><form class="login_form_con"><div class="login_form"><div class="login_title"><h3>登 录</h3><a href="javascript:;" class="shutoff"></a></div><div class="form_group"><input id="mobile" type="text" name="mobile" autocomplete="off"><div class="input_tip">手机号</div><div id="login-mobile-err" class="error_tip">手机号不能为空</div></div><div class="form_group"><input id="password" type="password" name="password"><div class="input_tip">密码(不少于6位)</div><div id="login-password-err" class="error_tip">密码不能为空</div></div><input type="submit" name="" value="登 录" class="input_sub"><div class="down_link">还没有账号?<a href="javascript:;" class="to_register">立即注册</a></div></div><div class="mask"></div></form><!-- 注册表单 --><form class="register_form_con"><div class="register_form"><div class="register_title"><h3>注 册</h3><a href="javascript:;" class="shutoff"></a></div><div class="form_group"><input type="text" name="mobile" autocomplete="off" id="register_mobile" class="phone_input"><div class="input_tip">手机号</div><div id="register-mobile-err" class="error_tip">手机号不能为空</div></div><div class="form_group"><input type="text" name="code_pwd" id="imagecode" class="code_pwd"><div class="input_tip">图形验证码</div><img src="" class="get_pic_code" onclick="generateImageCode()"><div id="register-image-code-err" class="error_tip">图形码不能为空</div></div><div class="form_group"><input type="text" name="smscode" id="smscode" class="code_pwd"><div class="input_tip">手机验证码</div><a href="javascript:;" class="get_code" onclick="sendSMSCode()">点击获取验证码</a><div id="register-sms-code-err" class="error_tip">验证码不能为空</div></div><div class="form_group"><input type="password" name="password" id="register_password" class="pass_input"><div class="input_tip">密码(不少于6位)</div><div id="register-password-err" class="error_tip">密码不能为空</div></div><div class="form_group2 clearfix"><input type="checkbox" class="agree_input" checked><p>同意使用条款,并已阅读"跟帖评论自律管理承诺书"</p><div class="error_tip">请勾选</div></div><input type="submit" name="" value="注 册" class="input_sub"><div class="down_link">已有账号?<a href="javascript:;" class="to_login">立即登录</a></div></div><div class="mask"></div></form></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。