栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

news目录,init.py

from flask import Blueprint

news_blue = Blueprint('news_blue',__name__,url_prefix="/news")

from . import views

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

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

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

@news_blue.route("/detail/")
@get_user
def 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 = None
    try:
        news = News.query.filter_by(id=id).first()
    except Exception as e:
        current_app.logger.error(e)
        abort(500)

    # 4.点击量累加
    if news:
        news.clicks += 1
        try:
            db.session.commit()
        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 = None
        try:
            user = User.query.filter_by(id=user_id).first()
        except Exception as e:
            current_app.logger.error(e)
            abort(500)
        g.user = user
        return 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




    
    文章详情页
    
    
    
    
    


logo
{% if context.user %} {% else %} {% endif %}
{{ context.news.title }}
{{ context.news.create_time }}来源: {{ context.news.source }} {{ context.news.clicks }}

{{ context.news.digest }}

{{ context.news.content | safe }} 收藏 {% if context.user %}

用户图标
{% else %}
登录发表你的评论
{% endif %}
4条评论

用户图标
用户张山
遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。
用户李思
遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。
2017-01-01 00:00:00
1 回复

用户图标
用户张山
遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。
2017-01-01 00:00:00
赞 回复

用户图标
用户张山
遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。
2017-01-01 00:00:00
赞 回复

用户图标
用户张山
遏制茅台酒价格过快上涨,多渠道供给,就不一定要买,租茅台酒也可以的,租售同权。开发共有产权茅台酒,让老百姓喝得起茅台酒,饮者有其酒。
2017-01-01 00:00:00
赞 回复

author_pic
张大山
张大山的简介,张大山
总篇数23
粉丝36
关注 已关注取消关注
点击排行
    {% for news in context.news_clicks %}
  • { loop.index | rank }}">{{ loop.index }}{{ news.title }}
  • {% endfor %}
注 册
手机号
手机号不能为空
图形验证码
图形码不能为空
手机验证码
点击获取验证码
验证码不能为空
密码(不少于6位)
密码不能为空

同意使用条款,并已阅读"跟帖评论自律管理承诺书"

请勾选
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998455.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号