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= ...
随机推荐
- uri不能处理结尾为点的url的问题
最近需要和某公司进行接口对接,发现用WebClient获取URL结尾带.的资源,会出404错误.但是用IE还有其它浏览器访问此资源,还能找到它.很神奇. 于是,我百度了,找到的一堆都是说此url不规范 ...
- 【编程篇】C++11系列之——临时对象分析
/*C++中返回一个对象时的实现及传说中的右值——临时对象*/ 如下代码: /**********************************************/ class CStuden ...
- CSS3 动画
通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片.Flash 动画以及 JavaScript. CSS3 动画 CSS3 @keyframes 规则 如需在 CSS3 中创建动画, ...
- Linux用户密码重置方法
方法一: 启动时,随便按一个键,空格即可(不能是回车),让其停留在如下界面 按e编辑 在UTF-8后面添加init=/bin/sh init=/bin/sh 根据上面提示,按Ctrl+x启动得下图 输 ...
- CSS3初学篇章_7(布局/浏览器默认样式重置)
CSS布局说到布局,就不得不提布局的核心<div>标签,它与其它标签一样,也是一个XHTML所支持的标签,专门用于布局设计的容器标签.在css布局方式中,div 是这种布局方式的核心对象, ...
- F-并查集
Problem F Time Limit : 2000/1000ms (Java/Other) Memory Limit : 60000/30000K (Java/Other) Total Sub ...
- poj1007-DNA Sorting(排序)
一,题意: 输入N个字符串,按照字符串的逆序数由最少到最大开始输出. 注意:如果逆序数相同,就原来顺序输出. 二,思路步骤: 1,输入,并用a[]存储每行字符串的逆序数; 2,冒泡排序a[]的同时换掉 ...
- vpn
https://itunes.apple.com/us/app/sonicwall-mobile-connect/id822514576?mt=12
- [转]Linux学习笔记——例说makefile 头文件查找路径
0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助 ...
- C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法
由于项目需要,要为客户提供一个定期发送邮件的程序.本来原来自己还写过,但新写的程序一晚上也没通过测试,总是提示"不允许使用邮箱名称.服务器响应为..." 经过在网上搜索查找解决办法 ...