|版权声明:本文为博主原创文章,未经博主允许不得转载。

从usercen.html就可以发现我为个人主页设了三个分开的小版面:写文章、个人文章目录、个人资料

所以按顺序Part.Five的第二部分就完成个人文章目录功能的实现。


一如既往先写出来跟usercen.html页面大体类似的userblog.html页面↓

{% extends "main.html" %}
{% block content %}
<nav class="navbar navbar-default navbar-static-top" role="navigation">
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>                        <a class="navbar-brand" href="#">TSSS</a>
                    </div>
                    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                        <ul class="nav navbar-nav">
                            <li>
                                <a href="/">首页</a>
                            </li>
                            <li>
                                <a href="/code/codelist">算法</a>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">代码<strong class="caret"></strong></a>
                                <ul class="dropdown-menu">
                                    <li>
                                        <a href="https://github.com/MU001999/The-algorithms">GitHub</a>
                                    </li>
                                    <li>
                                        <a href="https://leetcode.com/">LeetCode</a>
                                    </li>
                                    <li>
                                        <a href="https://www.codewars.com/">CodeWars</a>
                                    </li>
                                    <li class="divider">
                                    </li>
                                    <li>
                                        <a href="https://github.com/sxy1001">SXY1001</a>
                                    </li>
                                    <li class="divider">
                                    </li>
                                    <li>
                                        <a href="https://github.com/MU001999">MU001999</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                        <form class="navbar-form navbar-left" role="search" action="/" method="POST">
                            <div class="form-group">
                                <input type="text" class="form-control" name="codename" />
                            </div> <button type="submit" class="btn btn-default">查找</button>
                        </form>
                        <ul class="nav navbar-nav navbar-right">
                            <li>
                                <a href="/user/usercen">{{ username }}</a>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">更多<strong class="caret"></strong></a>
                                <ul class="dropdown-menu">
                                    <li>
                                        <a href="/user/usercen">个人中心</a>
                                    </li>
                                    <li>
                                        <a href="/user/mycode">我的代码</a>
                                    </li>
                                    <li>
                                        <a href="/user/plan">我的计划</a>
                                    </li>
                                    <li class="divider">
                                    </li>
                                    <li>
                                        <a href="/sign/out">退出登录</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </nav>
                <ul class="nav nav-tabs">
                    <li>
                        <a href="/user/usercen">写文章</a>
                    </li>
                    <li class="active">
                        <a href="#">个人文章目录</a>
                    </li>
                    <li>
                        <a href="/user/userinfo">个人资料</a>
                    </li>
                    <li class="dropdown pull-right">
                        <a href="#" data-toggle="dropdown" class="dropdown-toggle">↓↓↓<strong class="caret"></strong></a>
                        <ul class="dropdown-menu">
                            <li>
                                <a href="#">修改密码</a>
                            </li>
                        </ul>
                    </li>
                </ul><br>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h3 class="panel-title">
                            按时间排序
                        </h3>
                    </div>
                    {% for blog in blogs %}
                    <div class="panel-body">
                        <a href="/blog/{{ blog['_id'] }}">{{ blog['title'] }}</a>
                    </div>
                    {% end %}
                </div>
{% end %}

接着在UserHandler中完善进userblog的部分↓

class UserHandler(web.RequestHandler):
    def get(self,input):
        if input == 'usercen':
            coll = self.application.db.users
            if self.get_cookie('username'):
                self.render('user/usercen.html',username=self.get_cookie('nickname'))
            else:
                self.redirect('/')
        if input == 'userblog':
            coll = self.application.db.blogs
            blogs = coll.find({'author':self.get_cookie('nickname')}).sort('datetime',pymongo.DESCENDING)
            self.render('user/userblog.html',username=self.get_cookie('nickname'),blogs = blogs)
    def post(self,input):
        if input == 'usercen':
            coll = self.application.db.blogs
            author = self.application.db.users.find_one({'username':self.get_cookie('username')})['nickname']
            title = self.get_argument('title')
            content = self.get_argument('content')
            datetime = time.ctime()
            try:
                coll.insert({'title':title,'author':author,'content':content,'datetime':datetime})
            finally:
                self.redirect('/user/userblog')

个人主页里的文章目录功能实现。

--Part.Five.2--

Python快速建站系列-Part.Five.2-个人主页及文章列表的更多相关文章

  1. Python快速建站系列-Part.One-组装开发环境

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 源代码都在github上:SmallStudyStation 现在是个demo,但回来会租个服务器,等功能完善了放到服务器上挂着,域名jusot ...

  2. Python快速建站系列-Part.Three-注册和登录

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登 ...

  3. Python快速建站系列-Part.Two-结构化和布局

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 首先明确我们要建一个什么样的站,作为教程(也算自己使用tornado的一个小总结),自然功能不能太多,但又满足一个普通网站需要的就行了. 目前想 ...

  4. Python快速建站系列-Part.Six-文章内容浏览

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 其实到这里网站的基本功能已经完成一半了,第六节就完成文章内容的阅读功能. 完成blogview.html↓ {% extends "m ...

  5. Python快速建站系列-Part.Five.3-个人主页及资料页面

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 第五部分最后一节,完成个人主页里资料页面的个人资料的展示和修改功能,不过毕竟功能比较少,个人资料其实只有昵称一项,手动滑稽. 一如既往先写出来u ...

  6. Python快速建站系列-Part.Five.1-个人主页及发表文章

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 现在的TSSS已经有了注册和登录的功能,首页的内容也填充好了,那这一节就完成用户个人主页的内容和发表文章功能的实现. 先完成用户个人主页的use ...

  7. Python快速建站系列-Part.Four-首页内容填充

    |版权声明:本文为博主原创文章,未经博主允许不得转载. Part.Three中实现了注册和登录的功能,那这一节完成主页内容的填充,并且主页中要实现简单的可以查找代码的功能. 而且有于公共代码部分存储在 ...

  8. PHPCMS快速建站系列之搜索功能

    默认模板的搜索功能代码 <div class="bd"> <form action="{APP_PATH}index.php" method= ...

  9. PHPCMS快速建站系列之自定义分页函数

    内容分页的实现方法:{pc:content action="lists" catid="$catid" order="id DESC" nu ...

随机推荐

  1. SDCycleScrollView 滚动视图的使用(广告)

    github库链接https://github.com/gsdios/SDCycleScrollView 无限循环自动图片轮播器(一步设置即可使用) // 网络加载图片的轮播器 cycleScroll ...

  2. C语言中计算变量占用内存空间

    C语言中计算变量占用内存空间 在C语言中通常用[sizeof]运算符计算变量占内存空间,如下面的例子:

  3. Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务

    系统环境: $ cat /etc/issueRed Hat Enterprise Linux Server release 5.8 (Tikanga)Kernel \r on an \m 1. 下载安 ...

  4. C# async

    I/O should use async, asynchronous method can be achieved: message, delegate, multi-threading Thread ...

  5. 淘宝前端工程师:国内WEB前端开发十日谈

    一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...

  6. Hive_DDL与DML

    DDL(数据定义语言) create.drop.alter.truncate.show.describe DML(数据控制语言) load.insert.update.delete.import/ex ...

  7. 模拟状态为active的日志损坏的数据恢复实验(不完全恢复)

    1查看当前日志状态 首先不完全恢复是会丢失数据的,由此在当前打开的数据中我们创建一些测试数据,用来验证当我们进行完不完全恢复后该数据是否还存在. 2模拟删除CURRENT状态的日志 3启动数据验证错误 ...

  8. 浏览器中跨域创建cookie的问题

    当我们在www.a.com这个域下用ajax提交一个请求到www.b.com这个域的时候,默认情况下,浏览器是不允许的,因为违反了浏览器的同源策略.解决方案可以参考笔者的这篇博文:http://www ...

  9. asp.net mvc Post上传文件大小限制

    最近发现在项目中使用jQuery.form插件上传比较大的文件时,上传不了,于是改了下web.config的上传文件最大限制. <configuration> <system.web ...

  10. bug0

    1,编码 之前做支付验证的时候,sdk的平台token串有的就是会有空格,折腾了很久,前后端对调好多次都没发现这个问题.结果有的平台验证通过,有的通不过. 仔细调试后发现不通过的url中参数串都是带有 ...