zoukankan      html  css  js  c++  java
  • 项目 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 %}
  • 相关阅读:
    routine的加载
    Forms Authentication and Role based Authorization: A Quicker, Simpler, and Correct Approach
    How does Request.IsAuthenticated work?
    细说ASP.NET Forms身份认证
    IIS URL Rewriting and ASP.NET Routing
    Razor syntax reference for ASP.NET Core
    win10 合并磁盘 disk Acronis Disk Director
    bad object refs/remotes/origin/HEAD
    https://www.atlassian.com/git/tutorials/git-gc
    c++ 中文字符串处理方法
  • 原文地址:https://www.cnblogs.com/xuchengcheng1215/p/9246848.html
Copyright © 2011-2022 走看看