管理你的Google app engine项目

目前我们还不能从Google app engine直接管理项目代码文件,但是已经有人开发了相关的功能。早前,manatlan的zipme能够将Google app engine项目打包成zip文件下载到本地。最近,chendaoan Chen Baiping的GAE App files browser实现了更多管理的功能,看起来有点象Google app engine的管理页面了。

GAE App files browser目前能够做到:

1. 在线浏览GAE项目文件

查看app目录结构和文件 查看文件内容 下载文件 压缩目录到zip文件并下载

2. 在线运行和调试app

在线python解析 检查支持GAE的函数和模块 快捷的调试GAE app

您可以访问http://enter.appspot.com/查看演示,从http://code.google.com/p/appfilesbrowser/下载代码。

文件编辑、删除和更名受制于Google app engine对文件系统访问的限制还无法实现,不过如果能够加上代码语法高亮,那一定很cool。我用google code prettify做了尝试,效果还不错。

1. 修改listfiles.py:

from django.utils.html import escape...class MainFile(webapp.RequestHandler): def get(self): unicode_fn= self.request.get('fn') fn = unicode_fn.encode('ascii', 'ignore') filename=fn show_code = False iLastSlash = fn.rfind('/') if iLastSlash>=0: filename=fn[iLastSlash+1:] fullpath=ROOT_DIR+'/'+fn# self.response.out.write('get file=' + filename)# return if fullpath.find('./')==0: fullpath=fullpath[2:] if fullpath.find('./')==0: fullpath=fullpath[2:] logging.info(' fn='+fullpath) if os.path.isfile( fullpath ):# logginginfol('222222 fn='+fullpath) if self.request.get('op')=='view': logging.info('view='+fullpath) if re.match('.*\.gif$', fn, re.IGNORECASE) : self.response.headers[ 'Content-Type'] = 'image/gif' elif re.match('.*\.jpe?g$', fn, re.IGNORECASE) : self.response.headers[ 'Content-Type'] = 'image/jpeg'# logging.info(self.response.headers[ 'Content-Type']) elif re.match('.*\.bmp$', fn, re.IGNORECASE) : self.response.headers[ 'Content-Type'] = 'image/x-ms-bmp' elif re.match('.*\.png$', fn, re.IGNORECASE) : self.response.headers[ 'Content-Type'] = 'image/x-png' elif re.match('.*\.tiff?$', fn, re.IGNORECASE) : self.response.headers[ 'Content-Type'] = 'image/tiff' else: show_code = True else: logging.info('download='+fullpath) self.response.headers[ 'Content-Type'] = 'application/octet-stream' self.response.headers[ "Content-Disposition"]= "attachment;filename="+filename; #a file f = open( fullpath, 'rb') while True: buf = f.read(1<<20) #1M, file length exceed 1M will be truncat by GAE. if buf: if show_code: template_values = {'buf': buf,} self.response.out.write(template.render('showcode.html', template_values)) else: self.response.out.write(buf) else: break ...

2. 新建template文件:showcode.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html> <head> <link href="/static/prettify.css" type="text/css" rel="stylesheet" /> <script src="/static/prettify.js" type="text/javascript"></script> <style> pre { font-family: Verdana,Arial,Helvetica; font-size: 11px;} </style> </head> <body onload="prettyPrint()"> <pre class="prettyprint" >{{ buf|escape }} </pre> </body></html>

当然,您也可以不用template,直接在listfiles.py文件response.out.write() html代码。

3. 下载google code prettify保存在static目录。

最后的效果:

py

css

js

yaml

时间: 2024-10-23 11:05:09

管理你的Google app engine项目的相关文章

使用Google App Engine Helper for Django

原文链接: http://code.google.com/appengine/articles/appengine_helper_for_django.html 译文链接: http://danmarner.yo2.cn/appengine_helper_for_django_cn/ 引言 Google App Engine可以运行任何WSGI兼容的程序.由于Django支持该标准,所以在Google App Engine上建立(或者移植既成的)Django程序是完全可能的. 本文将通过重新包装

中文版Google App Engine入门指南(1)

本指南将介绍如何开发以及展示一个简单的Google App Engine项目.这个示例项目-一个用户留言簿-将会向你展示如何使用Google App Engine的多项服务,包括数据库服务和谷歌帐户服务. Google App Engine入门指南包括以下几个部分: 介绍编程环境 Hello, World! 使用webapp框架 使用Google帐户服务 用webapp处理表单 使用数据库存储 使用模板 使用静态文件 上传你的程序 介绍 欢迎来到Google App Engine!创建一个App

Google App Engine for Java: 第 2 部分:构建杀手级应用程序--使用 App Engine 构建联系人管理应用程序

诸如 Google App Engine for Java 这样的云平台的关键在于能够设计.构建和部署专业级的应用程序 -- 可以非常容易地进行伸缩.在这个包含三部分的 Google App Engine for Java 系列文章第二篇中,Rick Hightower 将通过一个分步指南,使用 Google App Engine for Java 来编写和部署一个简单的联系人管理应用程序,从而超越第1部分中提供的现成示例. 在介绍使用 App Engine for Java 构建可伸缩 Jav

Java开发2.0: 针对Google App Engine的Gaelyk

本 系列 将探讨对于如今及未来的 Java 开发的发展起决定作用的各 个技术方面.Java 开发 2.0 的前提开发速度将越来越快,这要归功于开源领域 中的创新以及硬件的商业化.您可以租借其他人的硬件平台来托管自己的应用程 序(主要使用开源库.工具和框架来装配),成本只包括获取和维护自己的基础 设施. 本系列的第一期 "使用 Google App Engine" 讨论 了免费租借 Google 的基础设施来托管您的 Java 应用程序(不过会牺牲少许灵 活性)的概念.在后续文章中,您了

Amazon EC2和Google App Engine,谁是最后的赢家

Amazon EC2和Google App Engine,两大服务平台,谁能更胜一筹,我打算从三个角度来对比这两大云计算平台:技术,业务和未来发展趋势,本文是技术方面的对比,ok,准备好咖啡,我们开始吧! 如果按平台类型来分,大家可能已经知道Amazon EC2属于IaaS(基础设施即服务),Google App Engine属于PaaS(平台即服务).不过,如果Amazon EC2给你一个安装了操作系统的平台,你就可以自己安装应用程序,并且使用AMI(Amazon Machine Image)

使用 Eclipse 在 Google App Engine 上创建 mashup,第 3 部分: 使用 RESTful Web 服务

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的最后一部分,在本文中,将利用并进一步增强在前两部分中构建的

使用 Eclipse 在 Google App Engine 上创建 mashup,第 1 部分: 创建应用程序

进军社会软件是为应用程序增值的好方法.使用社会网络可以更轻松地获得并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务.您不必担心存储大量静态内容和动态数据.相反,您可以将精力集中在创建优秀的 mashup 上.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上

Google App Engine for Java,第 3 部分: 持久性和关系--基于 Java 的持久性和 Google App Engine 数据存储

在企业环境中,数据持久性是交付可伸缩应用程序的基础.Rick Hightower 在他撰写的有关 Google App Engine for Java 的系列文章的最后一篇中,介绍了 App Engine 当前基于 Java 的持久性框架.让我们学习一些基础知识,了解为什么当前预览版中的 Java 持久性还未到发布的最佳时间,同时获得一个良好的演示,看看您如何在 App Engine for Java 应用程序中保存数据.注意,您将需要启动并运行来自第2部分的联系人管理应用程序,在此过程中学习如

使用 Eclipse 在 Google App Engine 上创建 mashup,第 2 部分: 构建 Ajax mashup

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的第二部分,在本文中,将利用并增强在第 1 部分中构建的应用