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

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

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

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



先写了index.html↓

  1 {% extends "main.html" %}
  2 {% block content %}
  3 <nav class="navbar navbar-default navbar-static-top" role="navigation">
  4                     <div class="navbar-header">
  5                         <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>
  6                     </div>
  7                     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  8                         <ul class="nav navbar-nav">
  9                             <li>
 10                                 <a href="/">首页</a>
 11                             </li>
 12                             <li>
 13                                 <a href="/code/list">算法</a>
 14                             </li>
 15                             <li class="dropdown">
 16                                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">代码<strong class="caret"></strong></a>
 17                                 <ul class="dropdown-menu">
 18                                     <li>
 19                                         <a href="https://github.com/MU001999/The-algorithms">GitHub</a>
 20                                     </li>
 21                                     <li>
 22                                         <a href="https://leetcode.com/">LeetCode</a>
 23                                     </li>
 24                                     <li>
 25                                         <a href="https://www.codewars.com/">CodeWars</a>
 26                                     </li>
 27                                     <li class="divider">
 28                                     </li>
 29                                     <li>
 30                                         <a href="https://github.com/sxy1001">SXY1001</a>
 31                                     </li>
 32                                     <li class="divider">
 33                                     </li>
 34                                     <li>
 35                                         <a href="https://github.com/MU001999">MU001999</a>
 36                                     </li>
 37                                 </ul>
 38                             </li>
 39                         </ul>
 40                         <form class="navbar-form navbar-left" role="search" action="/" method="POST">
 41                             <div class="form-group">
 42                                 <input type="text" class="form-control" name="codename" />
 43                             </div> <button type="submit" class="btn btn-default">查找</button>
 44                         </form>
 45                         {%if not cookieName%}
 46                         <ul class="nav navbar-nav navbar-right">
 47                             <li>
 48                                 <a href="/sign/in">登入</a>
 49                             </li>
 50                             <li>
 51                                 <a href="/sign/up">注册</a>
 52                             </li>
 53                         </ul>
 54                         {% else %}
 55                         <ul class="nav navbar-nav navbar-right">
 56                             <li>
 57                                 <a href="/user/main">{{ username }}</a>
 58                             </li>
 59                             <li class="dropdown">
 60                                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">更多<strong class="caret"></strong></a>
 61                                 <ul class="dropdown-menu">
 62                                     <li>
 63                                         <a href="/user/main">个人中心</a>
 64                                     </li>
 65                                     <li>
 66                                         <a href="/user/code">我的代码</a>
 67                                     </li>
 68                                     <li>
 69                                         <a href="/user/plan">我的计划</a>
 70                                     </li>
 71                                     <li class="divider">
 72                                     </li>
 73                                     <li>
 74                                         <a href="/sign/out">退出登录</a>
 75                                     </li>
 76                                 </ul>
 77                             </li>
 78                         </ul>
 79                         {% end %}
 80                     </div>
 81                 </nav>
 82                 <span class="label label-danger">本日最佳</span>
 83                 <div class="jumbotron well">
 84                     <h1>
 85                         Hello, world!
 86                     </h1>
 87                     <p>
 88                         #include &lt;stdio.h&gt;
 89                     </p>
 90                     <p>
 91                         int main()
 92                     </p>
 93                     <p>
 94                         {
 95                     </p>
 96                     <p>
 97                         printf("Hello,World!");
 98                     </p>
 99                     <p>
100                         return 0;
101                     </p>
102                     <p>
103                         }
104                     </p>
105                     <p>
106                         <a class="btn btn-primary btn-large" href="#">查看讨论</a>
107                     </p>
108                 </div>
109                 <div class="list-group">
110                     <a href="#" class="list-group-item active">最新文章</a> {% for blog in blogs %}
111                     <div class="list-group-item">
112                         <a href="/blog/{{ blog[‘_id‘] }}">{{ blog[‘title‘] }}</a>
113                     </div>
114                     {% end %}
115                 </div>
116 {% end %}

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

再来看一下数据库规范↓

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

然后写IndexHandler↓

 1 class IndexHandler(web.RequestHandler):
 2     def get(self):
 3         coll = self.application.db.blogs
 4         username = self.get_cookie(‘username‘)
 5         blogs = coll.find().sort(‘datetime‘,pymongo.DESCENDING)
 6         self.(‘index.html‘,username=username,blogs=blogs)
 7     def post(self):
 8         coll = self.application.db.codes
 9         codename = self.get_argument(‘codename‘)
10         codeone = coll.find_one({‘title‘:codename})
11         if codeone:
12             try:
13                 with open(os.path.dirname(__file__),findcode[‘path‘],‘r‘) as f:
14                     content = f.read()
15                     self.render(‘codeview.html‘,codeone = codeone)
16             except:
17                 self.set_status(404)
18                 self.write({‘error‘:‘code not be here now‘})

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

时间: 2024-10-14 02:09:27

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

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

|版权声明:本文为博主原创文章,未经博主允许不得转载. 其实到这里网站的基本功能已经完成一半了,第六节就完成文章内容的阅读功能. 完成blogview.html↓ {% extends "main.html" %} {% block content %} <nav class="navbar navbar-default navbar-static-top" role="navigation"> <div class="

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

源代码都在github上:https://github.com/SSSDOG/SmallStudyStation 既然是用Python快速建站,第一步选择框架,鉴于Django有点复杂对新手不是很友好所以选择Tornado,数据库的话用MongoDB. 建站也少不了前端,我是用的bootstrap,从http://www.bootcss.com/这里下载就行,或者直接用它提供的CDN. 首先安装Python需要的模块 1 import tornado 2 import pymongo pymon

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

|版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登录的实现 复杂的安全cookies实现可以看这里 使用安全cookies,因为快速建站这个其实只相当于一个小demo,所以复杂的用户系统会在以后实现,现在只需要实现拥有用户名,密码,昵称和用户权限声明的一个用户系统就可以了. 看一下users的数据库规范然后再写代码 #数据库规范 codedb:us

PHPCMS快速建站系列之pc:get标签的应用

GET标签使用方式如下: {pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"} <ul> {loop $data $key $val} {$val[username]}<br /> {/loop} </ul> {$pages}

PHPCMS快速建站系列之getcache()的用法

/** * 读取缓存,默认为文件缓存,不加载缓存配置. * @param string $name 缓存名称 * @param $filepath 数据路径(模块名称) caches/cache_$filepath/ * @param string $config 配置名称 */ function getcache($name, $filepath='', $type='file', $config='') { if(!preg_match("/^[a-zA-Z0-9_-]+$/",

PHPCMS快速建站系列之需要掌握的函数

路径:phpcms\libs\classes\model.class.php /** * 执行sql查询 * @param $where   查询条件[例`name`='$name'] * @param $data   需要查询的字段值[例`name`,`gender`,`birthday`] * @param $limit   返回结果范围[例:10或10,10 默认为空] * @param $order   排序方式 [默认按数据库默认方式排序] * @param $group   分组方式

PHPCMS快速建站系列之添加单页模版

单页模板命名:page_xxx.html 以page_开头 在模版所在目录的config.php中添加配置项 'page_xxx.html' => '单网页', 也可以不在config中配置,不过会显示如下,没有中文解释 在后台就可以调用了,如果不行,试试刷新页面

PHPCMS快速建站系列之在线留言

有两种方法 第一种方法: 利用留言板插件,在后台模板中,安装留言板插件使用,这里先不展开. 第二种方法: 表单向导的适用场合: 如果一个前台页面只是为了提交表单数据,那么就非常适合适用表单向导的功能,如下面留言板的案例:如果一个前台页面不只是为了提交表单,还要求在当前前台页面显示提交表单的内容,这种情况就不太适合适用表单向导,更适合将其作为一个模块或插件进行安装,如前台页面需要显示用户留言信息的情况 效果图如下: 1,进入"模块" 2,选择"表单向导" 3,点击&q

Linux VPS/服务器建站系列(二)- 常见的国内云服务器商家

继续接"Linux VPS/服务器建站系列(一)- 哪些人需要用服务器建站"文章,既然我们开始决定选择VPS.服务器作为项目用途.在准备实际的操作之前,笔者先准备罗列国内和国外的常见云服务器商家.因为服务器商家和方案选择与我们实际的项目确实有很大的关系的.对于我们正规的建站或者稳定项目,个人极力不推荐使用个人或者便宜的个人服务商.比如国内服务商建议选择BAT这样的大公司,至少可以确保商家不跑路.同样的,这几年BAT进入云计算市场之后,成本控制的还是比较好的,同样的价格,我们肯定优先选择