我打算做一个在线的python编辑器,并且是跨服务器的,不需要页面跳转的,还能支持文件上传,在这个过程中希望能学到一些新的知识。
主要功能:
在网页上有一个输入框,输入python代码之后,可以看到这段代码运行的结果。
附加功能:
1. 服务器上有一个专门的文件夹用来放写的代码,并且支持在该文件夹中建立多个子文件夹,用来放置多个小项目,每个文件夹中可以放置运行代码所需的文件。也可上传代码,也可查看代码,上传文件,不可访问目录外的文件。
2. 大概和spyder类似,左边是代码框,右上是目录文件,右下是输出结果,每个方框可以调整大小,可以不用页面跳转就可以运行代码。
3. 代码显示支持高亮功能,行号功能。
工具:
1. 云虚拟主机PHP5.5
2. 云服务器 Ubuntu16.04
3. CodeIgniter 3.0.6
4. uWSGI 2.0.12-5
5. Django 1.11.4
6. python 2.7.12
使用应用的版本:
1. jQuery3.2.1(2.2.0)
2. jquery-ui 1.12.1
3. uploadify 3.2.1
4. angular-filemanager 1.5.1
5. codemirror-5.28.0
需要注意的是angular-filemanager会用到bootstrap,里面自带的bootstrap是3.3.6版本的,但是这个版本不支持jQuery3.X,自带的是jQuery2.2.0,但是bootstrap有新版本3.3.7,可以支持jQuery3.X。uploadify用jQ3可以,jQ2不行,但是如果不用uploadify,用jQ2也是可以的。
下面分别介绍在实现各个功能的过程中,逐步达到要求所使用的方法。
运行python程序部分:
1. 本域执行
2. 本域post
3. 跨域post
4. 本域json ajax post //跨域不能json ajax
5. 本域 jsonp ajax post
6. 跨域 jsonp ajax get //jsonp ajax不能post
7. 跨域 json ajax po