【从0开始Tornado建站】群聊

本文介绍了一个简单的群聊系统的前后端实现方案。前端使用HTML和JavaScript构建界面,并通过Ajax进行实时刷新和新消息提示;后端采用Tornado框架处理请求,实现聊天记录的展示、分页及新消息的发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        群聊的前台主要代码:

{%block content%}
<!--<p class='text-success h3'>测试版本,每天凌晨4:00清水,enjoy it~~:-)</p>-->
<ul>
	{%for i in content[19*int(num)-19:19*int(num)]%}
	<li class='text-info'><a href='/user/{{i[1]}}' class='text-success h4'>【{{i[1]}}】</a> ({{i[3]}}) : {{i[2]}}</li>
	{%end%}
</ul>
<ul class='pagination'>
	{%for i in range(1,pages+1)%}
	<li {%if int(num)==i%}class='active'{%end%}><a href='/chat/{{i}}'>{{i}}</a></li>
	{%end%}
</ul>

</br>
</br>
<form action='/chat/1' method='post' class='well form-search'>
	<label class='sr-only'>发表新贴</label><input type='text' name='topic' placeholder='发表新贴...'/>
	<button type='submit' class='btn btn-danger'>发送</button>
</form>
{%end%}

后台代码:

class chatHandler(tornado.web.RequestHandler):
	def get(self,num): #num第几页
		name=self.get_cookie('hackerName')
		chats=showChat()
		n=len(chats)
		if n%20==0:
			pages=n//20 #pages总页数
		else:
			pages=n//20+1
		self.render('chat.html',cookieName=name,content=chats,pages=pages,num=num)
	def post(self,num):
		name=self.get_cookie('hackerName')
		if not name:
			return #在javascript 中判断是否已登录
		newTopic=self.get_argument('topic')
		insertChat(name,newTopic)
		self.redirect('/chat/1')

showChat函数定义如下:

def showChat():
	c.execute('select * from chat')
	tmp=c.fetchall()
	return tmp[::-1] #逆序,最新贴放在最上面

insertChat函数定义如下:

def insertChat(name,content):
	now=getTime()
	c.execute('insert into chat(name,content,time) values("'+name+'","'+content+'","'+now+'")')
	db.commit()

效果图如下:



群聊内容是按时间逆序排的,最新的在最上面,满20条就增加一页,默认的群聊首页就是/chat/1,即第一页。这里实现的只是基本功能,之后还要加上实时刷新ajax,新消息提示,都是前端的东西,在基本功能全部实现后加上去。


转载请注明:转自http://blog.youkuaiyun.com/littlethunder/article/details/25560003

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值