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

Part.Three中实现了注册和登录的功能,那这一节完成主页内容的填充,并且主页中要实现简单的可以查找代码的功能。

而且有于公共代码部分存储在本机,所以用存储路径的方式存储本地代码的信息。


先写了index.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/list">算法</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>
                         {%if not cookieName%}
                         <ul class="nav navbar-nav navbar-right">
                             <li>
                                 <a href="/sign/in">登入</a>
                             </li>
                             <li>
                                 <a href="/sign/up">注册</a>
                             </li>
                         </ul>
                         {% else %}
                         <ul class="nav navbar-nav navbar-right">
                             <li>
                                 <a href="/user/main">{{ 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/main">个人中心</a>
                                     </li>
                                     <li>
                                         <a href="/user/code">我的代码</a>
                                     </li>
                                     <li>
                                         <a href="/user/plan">我的计划</a>
                                     </li>
                                     <li class="divider">
                                     </li>
                                     <li>
                                         <a href="/sign/out">退出登录</a>
                                     </li>
                                 </ul>
                             </li>
                         </ul>
                         {% end %}
                     </div>
                 </nav>
                 <span class="label label-danger">本日最佳</span>
                 <div class="jumbotron well">
                     <h1>
                         Hello, world!
                     </h1>
                     <p>
                         #include &lt;stdio.h&gt;
                     </p>
                     <p>
                         int main()
                     </p>
                     <p>
                         {
                     </p>
                     <p>
                         printf("Hello,World!");
                     </p>
                     <p>
                         return 0;
                     </p>
                     <p>
                         }
                     </p>
                     <p>
                         <a class="btn btn-primary btn-large" href="#">查看讨论</a>
                     </p>
                 </div>
                 <div class="list-group">
                     <a href="#" class="list-group-item active">最新文章</a> {% for blog in blogs %}
                     <div class="list-group-item">
                         <a href="/blog/{{ blog['_id'] }}">{{ blog['title'] }}</a>
                     </div>
                     {% end %}
                 </div>
 {% end %}

↑其中Hello world那部分可以以后根据评论数排序出来的第一个换掉。

再来看一下数据库规范↓

codedb:blogs
	_id 		        ID
	author 		     作者
	title		        题目
	content		内容
	datetime	        时间

然后写IndexHandler↓

 class IndexHandler(web.RequestHandler):
     def get(self):
         coll = self.application.db.blogs
         username = self.get_cookie('username')
         blogs = coll.find().sort('datetime',pymongo.DESCENDING)
         self.('index.html',username=username,blogs=blogs)
     def post(self):
         coll = self.application.db.codes
         codename = self.get_argument('codename')
         codeone = coll.find_one({'title':codename})
         if codeone:
             try:
                 with open(os.path.dirname(__file__),findcode['path'],'r') as f:
                     content = f.read()
                     self.render('code\codeview.html',codeone = codeone)
             except:
                 self.set_status(404)
                 self.write({'error':'code not be here now'})

这样主页的内容就填充完成了。

Python快速建站系列-Part.Four-首页内容填充的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 从usercen.html就可以发现我为个人主页设了三个分开的小版面:写文章.个人文章目录.个人资料 所以按顺序Part.Five的第二部分就完 ...

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

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

  8. PHPCMS快速建站系列之后台内容自定义修改

    一.后台登录页面 背景图:\statics\images\admin_img 中的 login_bg.jpg 底部版权信息:\phpcms\languages\en 中的 system.lang.ph ...

  9. PHPCMS快速建站系列之类别调用及类别显示页面

    在需要调用类别的地方,比如列表页,首先写循环前面写上一句: <?php $TYPE = getcache('type_content','commons');?> 这句就是把类别缓存加载进 ...

随机推荐

  1. SQLite datatype

    NULL. The value is a NULL value. INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or ...

  2. 8.0/9.0 Email 设置

    Email 设置一直都是Odoo的一个坑,巨坑. 先讲结论,发邮件可以用,收还是算了吧 1. 发邮件设置 发的设置相对简单,如果企业邮箱支持catcll all功能,基本不用改动可以直接用,否则需要安 ...

  3. Javascript 编程小技巧总结(部分内容借鉴他人)

    1 – 使用===,而不是== ==(或!=)操作符在需要的时候会自动执行类型转换.===(或!==)操作不会执行任何转换.它将比较值和类型,而且在速度上也被认为优于==. 2 – 使用闭包实现私有变 ...

  4. php 中如何创建一个空对象

    // 创建一个空对象 $obj=(object)array(); //假设这是从数据库取内容 $arr=["prod_id"=>103,"prod_name&quo ...

  5. scrum站立会议学习

    项目:连连看游戏 小组名称:临时小组 组长:张政 小组成员: 李权 武志远 张政 张金生 MASTER:张政 会议内容: 一.已完成项: 1.根据先前的安排和计划完成了项目主要环境的搭建,配置好了基本 ...

  6. EDI - Biztalk Sample

    1. EDI Control - Scripting Usage:

  7. BizTalk动手实验(九)业务规则引擎使用

    1 课程简介 通过本课程熟悉业务规则引擎(BRE)的使用(本环境为Windows 2008 32位操作系统环境 + Visual Studio 2010 + BizTalk 210) 2 准备工作 1 ...

  8. java数据结构

    1.计算机科技的两大支柱 1.数据结构 2.算法 程序=数据结构+算法 2.定义:是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科 3.数据(Data):是对信息 ...

  9. IOS第八天(3:UITableViewController团购, 点击底部代码调整)

    ****代理者的方法中 // 通知页脚视图调整视图显示状态 [footerView endRefresh]; //发送代理通知的类中 /** 视图控制器刷新完成调用方法 */ - (void)endR ...

  10. Larbin初试

    前阵子找工作的时候经常会看到epoll多路复用的知识点,无奈自己一点都不懂.慌忙之际也只能去了解个大概.所以最近闲下来之后想要基于epoll机制实现一个比较有用的东西,刚好最近又想爬些东西,希望这次能 ...