Python快速建站系列-Part.Five.3-个人主页及资料页面
|版权声明:本文为博主原创文章,未经博主允许不得转载。
第五部分最后一节,完成个人主页里资料页面的个人资料的展示和修改功能,不过毕竟功能比较少,个人资料其实只有昵称一项,手动滑稽。
一如既往先写出来userinfo.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>
<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="/code/codelist">我的代码</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>
<a href="/user/userblog">个人文章目录</a>
</li>
<li class="active">
<a href="#">个人资料</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><br><br><br><br><br>
<blockquote>
<p>
{{ userinfo['username'] }}
</p> <small>This is your<cite>用户名</cite></small>
</blockquote>
<blockquote>
<p>
{{ userinfo['nickname'] }}
</p> <small>This is your <cite>昵称</cite></small>
</blockquote>
<form method="POST">
修改昵称
<input type="text" name="newname" value="">
<button type="submit">提交</button>
</form>
{% end %}
接着在UserHandler中完善进userinfo的部分↓
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)
if input == 'userinfo':
coll = self.application.db.users
userinfo = coll.find_one({'username':self.get_cookie('username')})
self.render('userinfo.html',username=userinfo['username'],userinfo=userinfo)
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')
if input == 'userinfo':
nickname = self.get_argument('newname')
coll = self.application.db.users
try:
findone = coll.find_one({'username':self.get_cookie('username')})
findone['nickname']=nickname
coll.save(findone)
self.redirect('/userinfo')
except:
self.write({'error':'edit the nickname wrongly'})
个人主页里的资料页面完成。
--Part.Five.3--
--Part.Five--
Python快速建站系列-Part.Five.3-个人主页及资料页面的更多相关文章
- Python快速建站系列-Part.One-组装开发环境
|版权声明:本文为博主原创文章,未经博主允许不得转载. 源代码都在github上:SmallStudyStation 现在是个demo,但回来会租个服务器,等功能完善了放到服务器上挂着,域名jusot ...
- Python快速建站系列-Part.Three-注册和登录
|版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登 ...
- Python快速建站系列-Part.Two-结构化和布局
|版权声明:本文为博主原创文章,未经博主允许不得转载. 首先明确我们要建一个什么样的站,作为教程(也算自己使用tornado的一个小总结),自然功能不能太多,但又满足一个普通网站需要的就行了. 目前想 ...
- Python快速建站系列-Part.Six-文章内容浏览
|版权声明:本文为博主原创文章,未经博主允许不得转载. 其实到这里网站的基本功能已经完成一半了,第六节就完成文章内容的阅读功能. 完成blogview.html↓ {% extends "m ...
- Python快速建站系列-Part.Five.2-个人主页及文章列表
|版权声明:本文为博主原创文章,未经博主允许不得转载. 从usercen.html就可以发现我为个人主页设了三个分开的小版面:写文章.个人文章目录.个人资料 所以按顺序Part.Five的第二部分就完 ...
- Python快速建站系列-Part.Five.1-个人主页及发表文章
|版权声明:本文为博主原创文章,未经博主允许不得转载. 现在的TSSS已经有了注册和登录的功能,首页的内容也填充好了,那这一节就完成用户个人主页的内容和发表文章功能的实现. 先完成用户个人主页的use ...
- Python快速建站系列-Part.Four-首页内容填充
|版权声明:本文为博主原创文章,未经博主允许不得转载. Part.Three中实现了注册和登录的功能,那这一节完成主页内容的填充,并且主页中要实现简单的可以查找代码的功能. 而且有于公共代码部分存储在 ...
- PHPCMS快速建站系列之类别调用及类别显示页面
在需要调用类别的地方,比如列表页,首先写循环前面写上一句: <?php $TYPE = getcache('type_content','commons');?> 这句就是把类别缓存加载进 ...
- PHPCMS快速建站系列之搜索功能
默认模板的搜索功能代码 <div class="bd"> <form action="{APP_PATH}index.php" method= ...
随机推荐
- 修改Windows Server 2008密码策略,设置简单密码
最长使用期限为0表示密码永不过期. 如果是VBOX虚拟机安装,在使用共享文件夹功能时候,需要打开控制面板--网络和共享中心--共享设置--启动网络发现.然后才能映射共享文件夹
- 使用TFHelp解析Html
似乎是第一次使用TFHelp解析Html,也是第一次解析Html遇到挺多的难题,现在这里简单的总结一下,慢慢补充TFHelp的使用! https://github.com/topfunky/hpple ...
- MYSQL的常用命令和增删改查语句和数据类型【转】
连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...
- MongoDB使用小结:一些常用操作分享
本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell.pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程. MongoDB的使用之前也分享过一篇, ...
- 初用idea建立javaweb遇到的问题与心得
1.直接用idea建立的web项目,其自动生成的web.xml里version=3.1,这样的话建立servlet-name等标签会报错(因为3.1不支持这种做法,更提倡用注解的办法),解决办法是将w ...
- NeoKylin5.6下安装部署达梦(DM7)数据库
1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 [root@jdbh ~]# uname -ra Linux jdbh -.el5xen # SMP Fri Jul :: EDT x ...
- 1.线性表-Array
fatal.h #include <stdio.h> #include <stdlib.h> #define Error( Str ) FatalError( Str ) #d ...
- jQuery File Upload 单页面多实例的实现
jQuery File Upload 的 GitHub 地址:https://github.com/blueimp/jQuery-File-Upload 插件描述:jQuery File Upload ...
- python logging usage
python中,logging模块主要是处理日志的. 所谓日志,可理解为在软件运行过程中,所记录的的一些运行情况信息 软件开发人员可以根据自己的需求添加日志,日志可以帮助软件开发人员 了解软件的运行信 ...
- 原生js封装Ajax
[转载请注明出处] 1 /** * @fileoverview ajax请求公用组件 * @author Limo * @date 2015/08/07 * Native package ajax m ...