首页 > 编程 > Python > 正文

使用Node.js和Socket.IO扩展Django的实时处理功能

2020-02-23 00:49:39
字体:
来源:转载
供稿:网友

 今天,我们的目标是使用Django,Redis,和Socket.IO建立一个实时的聊天室。虽然几乎所有的Web应用程序都可以建立一个聊天室的。这篇文章将以较高的水平告诉你如何将基于REST的应用程序转换成一个实时的Web应用程序的。我会使用Django创建REST的部分,实际上自由地使用任何你舒服的语言/框架均可。接下来,让我们跳进代码,先列举我们所需要的部分。

组成:

    Django 1.4+     Redis 2.6.x (版本可选,但是建议使用)     Redis-py 2.7.x (仅当你使用Redis时需要)     Node.js v0.8.x     Socket.IO v0.9.x     Cookie v0.0.5     数据库、sqlite、其他你觉得类似数据库形式的 均可


 

你的使用的版本可能与我不同,我暂时未测试其他版本,全部使用当前最新稳定版本。如果你无法通过下面方法安装,我已经编译好Ubuntu的软件包。你可以从评论中得到其他操作系统版本情况。
 

#https://docs.djangoproject.com/en/dev/topics/install/sudo apt-get install python-pipsudo pip install django #http://redis.io/downloadsudo apt-get install redis-server #https://github.com/andymccurdy/redis-pysudo pip install redis     #https://github.com/joyent/node/wiki/Installing-Node.js-via-package-managersudo apt-get install python-software-propertiessudo add-apt-repository ppa:chris-lea/node.jssudo apt-get updatesudo apt-get install nodejs #https://github.com/LearnBoost/socket.ionpm install socket.io #https://github.com/shtylman/node-cookienpm install cookie

让我们从Django Project开始
 

django-admin.py startproject realtime_tutorial && cd realtime_tutorialpython manage.py startapp coremkdir nodejs

执行完以上的代码,django project就配置好了,接下来要做的是在settings文件中设置数据库。先创建一个空白数据库。(这是一个settings file的例子。在我的app中添加了一个“core”然后配置templates和urls的路径。你可以随意更改settings中的配置信息,但是要与你的app相对应。

Model

models很简单,我们将要建一个包含user和text的表。如果你想让他更复杂一些,可以添加chatroom等信息。(为了简单起见,这里只写了两个)
 

from django.db import modelsfrom django.contrib.auth.models import User class Comments(models.Model):  user = models.ForeignKey(User)  text = models.CharField(max_length=255)

这就是我们将要使用的model,接下来执行下面的syncdb代码(第一行代码),创建数据库。然后创建几个user来测试。(第二行代码)

python manage.py syncdbpython manage.py createsuperuser Node Server With Socket.IO            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表