• 项目 10 项目改进与优化(添加收藏功能)


    项目 10 项目改进与优化(添加收藏功能)

      handlers/main.py 添加实例

    class ProfileHandler(AuthBaseHandler):
        '''
        显示用户上传的图片和喜欢的图片列表
        '''
        @tornado.web.authenticated
        def get(self):
            user = get_user(self.current_user) #获取当前用户的用户名
            like_posts = get_like_posts(user)#获取该用户所喜欢的图片的列表
    
            self.render('profile.html',user=user,like_posts=like_posts)

      utils/account.py 添加辅助函数

    def get_user(username):
        '''
        根据用户名拿到实例
        :param username:
        :return:
        '''
        user = session.query(User).filter_by(name=username).first()
        return user
    
    def add_like(user,post):
        '''
        添加喜欢功能
        :param user:
        :param post:
        :return:
        '''
        like = Like(user_id=user.id,post_id=post.id)
        session.add(like)
        session.commit()
    
    def get_like_posts(user):
        '''
        查询用户喜欢的图片的posts
        :param user: User的实例对象
        :return: posts Post 实例的列表
        '''
        posts = session.query(Post).filter(Like.user_id==user.id,Post.id==Like.post_id).all()
        return posts
    
    def get_like_users(post):
        '''
        查询该图片有几个用户喜欢
        :param post: Post的实例
        :return: users User 的实例
        '''
        users = session.query(User).filter(Like.post_id==post.id,User.id==Like.user_id).all()
        return users

      app.py 添加路由

      templates/profile.html 添加profile.html

    {% extends 'base.html' %}
    
    {% block title %} profile page {% end %}
    
    {% block content %}
    <div class="row col-12">
        <div class="card">
            <div class="card-header"><h3>用户上传</h3></div>
            {% for p in user.posts %}
            <a href="/post/{{ p.id }}">
                <img src="{{ static_url(p.thumb_url) }}" class="img-thumbnail">
            </a>
            {% end %}
    
            <div class="card col-12">
                <div class="card-header"><h3>用户喜欢</h3></div>
                {% for p in like_posts %}
                <a href="/post/{{ p.id }}">
                    <img src="{{ static_url(p.thumb_url) }}" class="img-thumbnail">
                </a>
                {% end %}
    
            </div>
        </div>
    </div>
    {% end %}
  • 相关阅读:
    汇编中push寄存器的影响
    windows lsp 指导
    java匹配中文汉字的正则表达式
    php中preg_match用户名正则实例
    Javascript中while和do-while循环用法详解
    如何找出MySQL数据库中的低效SQL语句
    asp.net连接oracle的问题及方法总结
    asp.net运算符之逻辑运算符以及其他运算符
    用命令行将Java程序打包为jar文件
    php 中cookie和session的用法比较
  • 原文地址:https://www.cnblogs.com/xuchengcheng1215/p/9246848.html
Copyright © 2020-2023  润新知