再国内,做什么都这么吃力。连aliyun 的ssh 都被封这是什么世道,所以做一个在线编辑代码的
忙忙碌碌有点粗糙。大家见谅
​1. [代码]views.py

#-*- coding:utf-8 -*- 
# jQuery File Tree
# Python/Django connector script
# By Martin Skou
#
import os
import urllib
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
 
def index(request):
    if not request.user.is_superuser:
       return HttpResponse(u"不要乱来")
    return render(request, 'codemirror/index.html', {"foo": "bar"},
        content_type="text/html")
          
 
def openfile(request):
    if not request.user.is_superuser:
       return HttpResponse(u"不要乱来")
    path = request.GET['path']
     
    f = open(path)
    con = f.read()
    f.close()
     
    return render(request, 'codemirror/openfile.html', {"con": con, "path":path},
        content_type="text/html")
 
@csrf_exempt
def savefile(request):
    if not request.user.is_superuser:
       return HttpResponse(u"不要乱来")
    path = request.POST['path']
    con = request.POST['con']
     
    f = open(path, 'wr')
    f.write(con.encode('utf-8'))
    f.close()
     
    return HttpResponse('成功')
     
@csrf_exempt
def createfile(request):
    if not request.user.is_superuser:
       return HttpResponse(u"不要乱来")
    path = request.GET['path']
 
    f = open(path, 'wr')
    f.write('')
    f.close()
 
    return HttpResponse('成功')
         
@csrf_exempt
def dirlist(request):
   if not request.user.is_superuser:
       return HttpResponse(u"不要乱来")
   r=['<ul class="jqueryFileTree" >']
   try:
       r=['<ul class="jqueryFileTree" >']
       d=urllib.unquote(request.POST.get('dir','c:\\temp'))
       for f in os.listdir(d):
           ff=os.path.join(d,f)
           if os.path.isdir(ff):
               r.append('<li class="directory collapsed"><a href="#" rel="%s/">%s</a></li>' % (ff,f))
           else:
               e=os.path.splitext(f)[1][1:] # get .ext and remove dot
               r.append('<li class="file ext_%s"><a href="#" rel="%s">%s</a></li>' % (e,ff,f))
       r.append('</ul>')
   except Exception,e:
       r.append('Could not load directory: %s' % str(e))
   r.append('</ul>')
   return HttpResponse(''.join(r))
2. [代码]urls.py

#-*- coding:utf-8 -*-
from django.conf.urls.defaults import patterns, url
 
urlpatterns = patterns('codemirror.views',
    url(r'^dirlist.html$', 'dirlist'),
    url(r'^index.html$', 'index'),
    url(r'^openfile.html$', 'openfile'),
    url(r'^savefile.html$', 'savefile'),
    url(r'^createfile.html$', 'createfile'),
     

3. [代码]index.html

<html>
<head>
    <script type="text/javascript" src="/static/js/jquery-1.9.0.min.js"></script>
    <link href="/static/codemirror-3.16/lib/codemirror.css" rel="stylesheet">
    <script type="text/javascript" src="/static/codemirror-3.16/lib/codemirror.js"></script> 
     
    <script type="text/javascript" src="/static/jqueryFileTree/jqueryFileTree.js"></script>
    <link href="/static/jqueryFileTree/jqueryFileTree.css" rel="stylesheet">
     
    </head>
<body>
 
<h1>
 
 
<p>My first paragraph.</p>
 
<div id="file_tree_div_id" >
</div>
<iframe id="editor_iframe_id" src="" ></iframe>
<script type="text/javascript">
  
$(document).ready( function() {漫画图片
    /* $.get('/codemirror/dirlist.html?dir=/home/boneyao/', function(html){
        $('#file_tree_div_id').html(html);
    });*/http://www.bizhizu.cn/manhua/​
     
    $(document).ready( function() {
        $('#file_tree_div_id').fileTree({
            root: '/home/boneyao/',
            script: '/codemirror/dirlist.html?dir=/home/boneyao/',
            expandSpeed: 1000,
            collapseSpeed: 1000,
            multiFolder: false
        }, function(file) {
           $('#editor_iframe_id').attr('src', "http://www.boneyao.com/codemirror/openfile.html?path="+file);
    });
});
});
 
   /*
  var editor = CodeMirror.fromTextArea(myTextarea, {
    mode: "text/html"
  });*/
 
 
</script>
 
</body>
</html>
4. [代码]openfile.html     
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="/static/js/jquery-1.9.0.min.js"></script>
    <link href="/static/codemirror-3.16/lib/codemirror.css" rel="stylesheet">
    <script type="text/javascript" src="/static/codemirror-3.16/lib/codemirror.js"></script> 
    <script type="text/javascript" src="/static/codemirror-3.16/mode/python/python.js"></script> 
    <script type="text/javascript" src="/static/codemirror-3.16/mode/javascript/javascript.js"></script>
     
    <script type="text/javascript" src="/static/jqueryFileTree/jqueryFileTree.js"></script>
    <link href="/static/jqueryFileTree/jqueryFileTree.css" rel="stylesheet">
     
    </head>
<body>
<input type="button" value="保存" onclick="save()"/></h1>
<TextArea id="myTextarea" >
{{con}}
</TextArea>
<script type="text/javascript">
var mode = "";
 
switch(window.location.href.split('.').slice(-1)[0]){
    case 'py': mode='python';break;
    case 'js': mode='javascript';break;
}
var editor = CodeMirror.fromTextArea($('#myTextarea')[0], {
    mode: mode
});
editor.setSize('100%','100%');
 
 
function save(){
    var value = editor.getValue();
     
    $.post('http://www.boneyao.com/codemirror/savefile.html', {
        'path':"{{path}}",'con':value
    }, function(text){
        alert(text);
    });
};
</script>
 
</body>
</html>

5. [图片] 2.bmp

在线编辑代码[django]版本的更多相关文章

  1. [个人开源]vue-code-view:一个在线编辑、实时预览的代码交互组件

    组件简介 vue-code-view是一个基于 vue 2.x.轻量级的代码交互组件,在网页中实时编辑运行代码.预览效果的代码交互组件. 使用此组件, 不论 vue 页面还是 Markdown 文档中 ...

  2. RunJS - 在线编辑、展示、分享、交流你的 JavaScript 代码

    发现一个很好玩,很强大的网站 RunJS - 在线编辑.展示.分享.交流你的 JavaScript 代码   http://runjs.cn/ 比如: http://runjs.cn/detail/l ...

  3. 花了一年时间完成的 在线G代码编辑,加工系统 G-Code Editor V1.0

    G代码是数控程序中的加工指令.一般都称为G指令.可以直接用来驱动机床,各种控制系统.是一种数控行业标准.传统的G代码编写以及编辑无法在线编辑,也不能实时看到g代码编辑的最后加工路径已经不能直接对编辑的 ...

  4. 一个很好用的在线编辑、展示、分享、交流JavaScript 代码的平台

    在发表博客时,有一些代码只能粘贴进去,而不能看到代码运行的效果,需要读者把代码粘贴进自己的编辑器,然后再运行看效果,这是一件很耗时的事情 在平时百度的时候,我发现一些网站可以在线预览功能,而且可以在线 ...

  5. 在线编辑word文档代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. java 网站源码 在线编辑模版 代码编辑器 兼容手机平板PC freemaker 静态引擎

    前台: 支持四套模版, 可以在后台切换   系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以 ...

  7. Office文档在线编辑的实现之二

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

  8. 使用WebDAV实现Office文档在线编辑

    Office的文档处理能力是非常强大的,但是它是本地资源,在Office Web App尚未成熟前,仍需要使用本地能力来进行文档编辑,可是现代的系统的主流却是B/S,所以在B/S中调用本地的Offic ...

  9. C# 10分钟入门基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS)

    今天,他来了(weboffice在线编辑文档). 上次写了一个在线预览的博,当然,效果并不是太理想,但是紧急解决了当时的问题. 后来,小编重新查找资料,求助大牛,终于使用新的方式替换了之前的low方法 ...

随机推荐

  1. apache占用内存高解决办法

    我用512M的vps,访问量不大,但内存占用很大,甚至宕机. 我用top,然后shitf+m发现,httpd占用内存极大.经过网上找资料设置后,用过一段时间终于没再出现内存问题了. 首先查找配置文件的 ...

  2. k8s集群部署

    环境: 两台虚拟机, 10.10.20.203 部署docker.etcd.flannel.kube-apiserver.kube-controller-manager.kube-scheduler ...

  3. ubuntu安装中文man手册

    1.安装manpages-zh包 sudo apt-get install manpages-zh 2.修改manpath文件 执行如下命令: vi /etc/manpath.config %s+/u ...

  4. 从零开始写一个Exporter

    前言 上一篇文章中已经给大家整体的介绍了开源监控系统Prometheus,其中Exporter作为整个系统的Agent端,通过HTTP接口暴露需要监控的数据.那么如何将用户指标通过Exporter的形 ...

  5. MATLAB循环结构:break+continue+嵌套

    break语句:终止当前循环,继续执行循环语句的下一语句: continue语句:跳过循环体的后面语句,开始下一个循环: 例:求[100,200]之间第一个能被21整除的整数 :200 %循环语句 ) ...

  6. iOS 蓝牙开发之(CoreBlueTooth)

    CoreBlueTooth 简介: 可用于第三方的蓝牙交互设备 设备必须支持蓝牙4.0 iPhone的设备必须是4S或者更新 iPad设备必须是iPad mini或者更新 iOS的系统必须是iOS 6 ...

  7. 2017-2018-1 20179209《Linux内核原理与分析》第八周作业

    Linux内核如何装载和启动一个可执行程 一.实验 1.1理解编译链接的过程和ELF可执行文件格式. 1.1.1编译链接过程 能用图说明的问题,就少用文字描述: 1.1.2ELF可执行文件 ELF可执 ...

  8. CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼

    今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞 ...

  9. Linux安装Nginx使用反向代理

    nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)1.实验环境准备准备2个服务器,都安装好nginx软件nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点) ...

  10. Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)

    今天要说的是为Android设备添加重启.飞行模式.静音模式按钮,客户需求中需要添加这项功能,在长按电源键弹出的菜单中没有这些选项,谨以此文记录自己添加这个功能的过程. 首先找到长按电源键弹出的对话框 ...