【从0開始Tornado建站】发表文章和评论

news/2024/5/20 21:07:15/文章来源:https://blog.csdn.net/weixin_33866037/article/details/85973227

        先上个效果图:


这是每一个用户的主页。由于是基本功能。所以用户头像。爱好等信息都还没有,在下一阶段加上。右側“发表新文章”按钮点击后进入发表文章的页面:



之前尝试过一些开源的富文本编辑器widgEditor和百度的ueditor,总感觉太大众化,既然域名是hacker,那就用hack一些的方式,直接用裸的<textarea>然后用markdown格式就最优秀了嘛,发表后的样子:



完美支持markdown,并且我測试过的全部markdown编辑器比方retext、dillinger.io、atom、stackedit等都不支持<pre>中的“<”和“>”。所以在这些编辑器中#include<stdio.h>是打印不出来的,我用python-markdown2转码就没有这个问题,注意在#前要用“\”转义,否则觉得markdown语法中的主标题,字体会变大的哈。发表文章的前端主要代码例如以下:

{%block content%}
<form action='/post' method='post' class='well'><div class='form-group'><label class='sr-only'>标题</label><input type='text' name='title' class='form-control' placeholder='请输入标题'/></div><div class='form-group'><label class='sr-only'>正文</label><textarea rows='20' type='text' name='blog' class='form-control' placeholder='请输入文章正文'></textarea></div><button type='submit' class='btn btn-warning'>发送</button>
</form>
{%end%}

发表文章的后端代码例如以下:

class postHandler(tornado.web.RequestHandler):def get(self):name=self.get_cookie('hackerName')self.render('post.html',cookieName=name)def post(self):title=self.get_argument('title')blog_md=self.get_argument('blog')blog=translate(blog_md)name=self.get_cookie('hackerName')idvalue=insertBlog(name,title,blog)self.redirect('/blog/'+str(idvalue))

insertBlog函数定义例如以下:

def insertBlog(name,title,blog):now=time.ctime()c.execute('insert into blog(name,title,blog,time) values("'+name+'","'+title+'","'+blog+'","'+now+'")')db.commit()c.execute('select max(id) from blog')return c.fetchone()[0]  #新插入数据的id

translate函数定义例如以下:

def translate(md):for i in whiteList:if i[0] in md:md=md.replace(i[0],i[1])md2=html.escape(md)data=markdown2.markdown(md2)for i in whiteList:if i[1] in data:data=data.replace(i[1],i[0])return data

显示文章的前段主要代码例如以下:

{%block content%}
<div>
<p class='text-success h2'>{{blog[1]}}的专栏</p>
<br/>
<p class='text-danger h3'>{{blog[2]}}</p>
<p class='text-muted h6'>{{blog[4]}}</p>
<br/>
{%raw blog[3]%}
</div><div>
<ul>{%for i in comments%}<li><a href='/user/{{i[2]}}' class='text-success h4'>{{i[2]}}</a>: <label class='text-warning h4'>{{i[3]}}</label>  <label class='text-muted h6'>{{i[4]}}</label></li>{%end%}
</ul>
</div><div><form action='/comment' method='post' class='form-inline'><div class='form-group'><label class='sr-only'>评论</label><input type='text' name='comment' class='form-control' placeholder='请输入评论'></input></div><button type='submit' class='btn btn-default'>评论</button></form>
</div>
{%end%}

显示文章和评论的后端代码例如以下:

class blogHandler(tornado.web.RequestHandler):def get(self,idvalue):selfname=self.get_cookie('hackerName')blog=showOneBlog(idvalue)comments=showComment(idvalue)self.render('blog.html',cookieName=selfname,blog=blog,comments=comments)class commentHandler(tornado.web.RequestHandler):def post(self):selfname=self.get_cookie('hackerName')comment=self.get_argument('comment')refer=self.request.headers.get('referer')for i in range(len(refer)-1,0,-1):if refer[i]=='/':breakblogid=refer[i+1:]print(blogid)addComment(blogid,selfname,comment)self.redirect('/blog/'+blogid)

文章和评论的表格定义例如以下:

CREATE TABLE blog(id integer primary key,name text,title text,blog text,time text);
CREATE TABLE comment(id integer primary key,blogid integer,name text,comment text,time text);

我想在接下来升级中加上评论的@功能,还有评论提示功能。

转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25560463

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_770494.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python设计网站

系统概要说明 现在&#xff0c;随着物联网以及网络技术的飞速发展&#xff0c;互联网已经成为了人们发布与获取信息的重要途径之一&#xff0c;所以通过老师要求&#xff0c;我们设计了一个普通的公司管理信息系统网站。这网站的具有的功能有注册&#xff0c;登录&#xff0c;注…

html背景图片加载慢,javascript – 如何加快我网站的背景图片加载速度?

我正在努力提高website的性能.在Chrome DevTools中,我看到bg2.jpg的请求在开始下载时被延迟了.我认为这种情况正在发生,因为我使用JavaScript生成URL并将其设置为CSS中的背景图像,Chrome浏览器正在优先处理包含此代码的脚本标记.let bgImgName "bg" Math.floor(Mat…

《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴&#xff0c;点击访问该目录可获取更多内容。 一、网站性能测试 &#xff08;1&#xff09;性能测试指标&#xff1a;①响应时间&#xff1b;②并发数&#xff1b;③吞吐量&#xff1b;④性能计数器&#xff1b; &#xff0…

ssh框架点击按钮就404_深挖网站404页面问题

404页面&#xff0c;指显示网站错误链接的页面&#xff0c;可能是访问的页面不存在&#xff0c;也可能是页面已经删除了。出现404异常状态&#xff0c;用户体验可能不佳&#xff0c;但可喜的是404页面能缓解用户的焦虑和挫败感。网站改版成为满足业务需要和提升用户体验的必经之…

transwarp site_SEO重拎SITE命令:看收录,判降权…还能发现网站结构疏漏

给部门编辑们提供SEO文章发布指南时&#xff0c;发现大伙对于SITE命令尚缺乏了解和应用。回到我自己入门SEO的那个时间点 &#xff0c;是先从掌握几个SEO命令开始的&#xff0c;其中最为实用的就是SITE命令&#xff0c;因为它可以查看网站的收录量。除此之外&#xff0c;SITE命…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

如何把其他网站的搜索页挂到自己的网站上_Google网站排名多久能到首页?

每一个企业都希望自己的外贸网站排名可以在短时间内排上Google首页&#xff0c;那Google网站排名多久能到首页呢&#xff1f;一尘SEO可以告诉大家的是&#xff0c;Google排名需要一定的时间和周期去判定&#xff0c;SEO是一个持续积累的过程&#xff0c;并不像SEM一样立竿见影。…

电商网站模板_上海电商网站建设设计方案是什么?具体建设流程分享

网站建设是很多人都会选择的&#xff0c;网站是很多人的一个营销和推广选择&#xff0c;必定如今互联网是非常发达的&#xff0c;在网站建设过程中也存在很多问题&#xff0c;一般在网站建设时需要将这些问题逐一解决&#xff0c;以保证自己建站更为满意&#xff0c;那么上海电…

网站可行性报告范文_合肥可以做可行性研究报告范文

合肥可以做可行性研究报告范文yllc合肥可以做可行性研究报告范文紧密纺纤维项目合作计划书年产真空拔罐器2000万套项目合作计划书年产1000吨胶剂生产线建设项目可行性报告年产2万吨混凝土减水剂深加工项目项目策划书年产500套全网制基站信息采集查询系统技术改造项目项目申请报…

用go重写php网站,php如何使用自动加载(重写url形成单一入口)-Go语言中文社区

事情是这样的&#xff0c;昨天我面了个试&#xff0c;发现自己对自动加载了解的很片面&#xff0c;于是我就去看自动加载的机制&#xff0c;而网上的例子讲的都是方法含义&#xff0c;于是我自己写了个简单的例子。什么是自动加载了&#xff1f;在php5之前是没有自动加载的&…

网络不稳定是什么原因_关键词排名波动原因,如何解决网站排名不稳定!

理论上讲&#xff0c;关键词的排名决定了网站的流量&#xff0c;定期审查关键词的排名是每个SEO人员的工作&#xff0c;在以往的工作我们可能会遇到这样一种情况&#xff1a;关键词排名频繁波动&#xff0c;很不稳定。 它往往搞的SEOer一头雾水&#xff0c;明明没有过度优化&am…

少儿编程的关联网站

​少儿编程教育的目的是学习某编程语言&#xff0c;掌握多少编程知识和技能&#xff0c;而是通过编程的学习提升数字素养&#xff0c;培养信息意识&#xff0c;形成学科融合的能力。格物斯坦认为&#xff1a;编程化计算思维的建立&#xff0c;为解决实际问题提供更富有逻辑化的…

学习人工智能网站

​在谈论人工智能教育之前&#xff0c;让我们简单地理解两个概念&#xff0c;一个是大数据&#xff0c;另一个是人工智能。对大数据概念的简单理解是数据价值的过程。格物斯坦表示&#xff1a;目前大数据正在从概念向行业转变。目前&#xff0c;大数据行业已初步形成了基于数据…

url获取网站信息不包含网页源文件内的标签_企业掌握这四点优化方法,轻松获取免费流量...

对于企业来说&#xff0c;在互联网中获取流量时&#xff0c;需要进行非常精细的测算&#xff0c;其中转化率则是计算的重点。企业对引流的渴求度高&#xff0c;在平台虽有公共流量&#xff0c;但是转化率低。想额外达到获客的成果又需要支付相应的费用&#xff0c;这就造成“流…

maya刷权重时有个叉_如何快速提升网站权重?7年SEO从业经验给你谈快速上权重方法...

今天在SEO圈子里面看到很多SEO新手入坑玩家&#xff0c;在群里交流网站权重上升太慢做几个月都没有一点权重和流量。那么今天王听风老师来给大家说一下网站权重快速提升的方法。网站权重我总结的几个经验&#xff1a;一&#xff0c;发文章做词库发文章必须带词库关键词&#xf…

seo自动发外链_seo如何做外链(做seo外链建设有哪些原则)

人人做seo都需要发外链&#xff0c;同样的工作最终的结果却是千差万别&#xff0c;有些人发的外链让网站优化的结果更好&#xff0c;有些人发外链带给网站的优化结果是无效甚至于是反作用的。我们seo如何做外链呢&#xff1f;做外链建设有哪些原则&#xff1f;一、发布一些高质…

python搭建网盘网站_搭建nextcloud私有云存储网盘

简介&#xff1a;搭建个人云存储一般会想到ownCloud&#xff0c;堪称是自建云存储服务的经典。而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.真正试用过后就由衷地赞同这个Nextcloud&#xff1a;它是个人云存储服务的绝佳选择。一开始以为Nextcloud只是一个网盘…

一个同时在线人数为500人的电商网站,TOMCAT设置并发数以及mysql数据库连接数

请问各位一下&#xff0c;如果现在有一个每天同时在线人数为500人的电商网站&#xff0c;使用阿里云服务器的配置如图 &#xff0c;用的是strutshibernatespring开发&#xff0c;使用tomcat&#xff0c;如果该网站上线了&#xff0c;那我该如何设置tomcat的连接数&#xff0c;…

承受每天百万级访问量的网站需要多少台服务器?

说一下我的网站吧&#xff0c;是一个漫画网站&#xff0c;全站动态伪静态&#xff0c;目前建站一年&#xff0c;是一个漫画为主的网站。 帖服务器配置截图 以及高峰期的CPU内存占用情况 因为是漫画网站全是图片&#xff0c;所以配了2个8T SAS硬盘做rid&#xff0c;保持服务器稳…

Nginx--大型网站高并发处理

文章目录 **Nginx**-->**大型网站高并发处理** 一&#xff0c;产生背景 二&#xff0c;负载均衡&#xff08;Load Balance&#xff09; 2.1 高并发 2.2 负载均衡 2.3 tomcat并发图 三&#xff0c;Nginx简介 3.1 什么是 Nginx? 3.2 哪些地方使用了Nginx&#xff1f; 四&…