使用Django创建Google App Engine应用

合集下载

google app engine for Python入门

google app engine for Python入门

Google App Engine for PythonApp Engine Python 概述编程欢迎使用 Google App Engine for Python!通过 App Engine,您可以使用Python语言构建网络应用程序,并利用专业开发人员构建世界级网络应用程序所用的多种针对Python 的库、工具和框架。

您的 Python 应用程序将在 Google 的可扩展基础结构上运行,并使用大型持久性存储和服务。

以获得关于使用 Python和Google使用入门指南如果您尚未做好准备,请参阅PythonApp Engine 来开发网络应用程序的交互性介绍。

Python 运行时环境Python网络应用程序使用CGI 协议与App Engine网络服务器交互。

应用程序可以通过CGI 适配器使用 WSGI 兼容的网络应用程序框架。

App Engine 包含一个称为webapp 的简单网络应用程序框架,使您易于上手。

对于较大的应用程序,诸如Django 的成熟第三方框架可很好地与 App Engine 配合使用。

App Engine 支持 Python 2.5。

Python 解释器在一个安全的“沙盒”环境下运行,以便隔离针对服务和安全的应用程序。

解释器可运行任何 Python 代码,包括您的应用程序中附带的 Python 模块以及 Python 标准库。

解释器不能载入具有C代码的 Python 模块,它是一个“纯”Python 环境。

沙盒确保了应用程序仅执行不影响其他应用程序的性能和可伸缩性的操作。

例如,应用程序不能将数据写入本地文件系统中,也不能建立任意网络连接。

应用程序使用App Engine 提供的可扩展服务来存储数据并通过互联网进行通信。

当应用程序尝试从已知不受沙盒限制的标准库中导入模块时,Python 解释器引发异常。

环境有关详细信息,请参阅CGI数据存储区和服务应用程序可以使用 App Engine数据存储区来实现可靠、可扩展的持久数据存储。

Google App Engine申请使用步骤及上传数据的三种方法

Google App Engine申请使用步骤及上传数据的三种方法

注:PHP网站开发教程版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。
第三步:配置appengine-web.xml,此处配置是为了能够上传至GAE应用空间,<application>与</application>之间填写申请的应用标示符,如图
编辑GAE的配置文件,设置应用标示符
经过上述配置后,PHP在Quercus上的配置就算完成了,下面就是如何上传至GAE的应用空间了。
GAE应用注册成功了
如何在Google App Engine上运行PHP
经过我的测试,跑一般的PHP应该没啥问题,就是碰到有些函数时会报错,比如foreach,fopen,file等,当然这也可能和捆绑的Java类库版本,服务器的运行环境有关。查了很多资料,有说resin-4.0.0里可找到resin.jar,建议使用resin.jar而不是quercus.jar + resin-util.jar + script-10.jar + jetty-util-6.1.0.jar这个防范。这样使用foreach就不会出错,我没有测试成功。
方法三:Google App Engine Java SDK
这是我觉得最简单的方法,减去了yaml的配置烦恼和文件大小的限制。
第一步:下载appengine-java-sdk。
第二步:解压下载文件
第三步:应用appcfg.cmd命令,比如我将SDK的文档放置在D盘,只要点击运行,输入CMD,在DOS运行模式下输入:
简单介绍GAE和Quercus
Google App Engine是用Python编程语言实现的,允许一个用户免费申请10个应用,每个应用空间为500M,以为再也不需要虚拟空间的朋友可得克制下喜悦的心情,据说每个应用空间最多只能传1000个文件,嘿嘿。这里有篇博友介绍Google App Engine缺陷及限制的文章,大家可以看看。

Google App Engine 入门指南中文版

Google App Engine 入门指南中文版

中文版Google App Engine入门指南本指南将介绍如何开发以及展示一个简单的Google App Engine项目。

这个示例项目-一个用户留言簿-将会向你展示如何使用Google App Engine的多项服务,包括数据库服务和谷歌帐户服务。

Google App Engine入门指南包括以下几个部分:∙介绍∙编程环境∙Hello, World!∙使用webapp框架∙使用Google帐户服务∙用webapp处理表单∙使用数据库存储∙使用模板∙使用静态文件∙上传你的程序介绍|中文版Google App Engine入门指南欢迎来到Google App Engine!创建一个App Engine应用程序很简单的,只需要几分钟的时间。

而且是免费的,只要你上传你的程序,你的网站就可以和用户见面了,不需要任何付款和投入。

在Google App Engine入门指南中,你将会创建一个用户留言簿,它可以让用户在公共的留言板上发表留言。

用户可以匿名留言,也可以使用他们的Google帐户留言。

这个留言簿程序将会向你展示如何使用App Engine的数据库存储,如何将一个App Engine和谷歌帐户进行整合,以及如何使用一个简单的Python网站框架(在App Engine中叫做webap)。

这个小程序还将会展示如何使用Django模板引擎。

编程环境|中文版Google App Engine入门指南你要通过App Engine的software development kit (SDK)来开发,上传你的Google App Engine程序。

这个SDK里包括了一个网站服务器(web server)程序,用来模拟App Engine的环境,包括一个本地版的数据库,Google帐户,以及获取远程地址(URLs)和从你的本地计算机发送邮件这一些列App Engine的API。

本SDK需要运行在Python 2.5上,Python 2.5的各个版本支持Windows,Mac OS X和Linux。

Google App Engine申请使用步骤及上传数据的三种方法

Google App Engine申请使用步骤及上传数据的三种方法

Google App Engine申请使用步骤及上传数据的三种方法最近由于用PHP开发了天气预报预报插件,调用的用户开始增多,考虑空间和带宽因素,试着考虑将一些必要的调用放置在免费的公用空间上,正好看到由于Google App Engine支持JAVA,而通过Quercus可以在未开放PHP 语言支持的GAE上面运行PHP代码,真是一阵激动,按耐不住心情,这两天向Google App Engine申请尝试了一把,最后不免有点失望,部署上去的PHP天气预报插件没法执行,调试了半天Quercus似乎对PHP的一些函数不支持(也许是我JAVA部署的水平有限,呵呵),不过这两天的付出也很值得,至少我多了5G的空间,以后可以存放一些图片等文件,以便远程调用,减轻主WEB的压力,哈哈,估计空间商要气死了。

闲话少说,详细说明下我从GAE申请到向GAE上传文件及运行PHP的步骤,网上详细说明的可不多哦,嘿嘿。

简单介绍GAE和QuercusGoogle App Engine是用Python编程语言实现的,允许一个用户免费申请10个应用,每个应用空间为500M,以为再也不需要虚拟空间的朋友可得克制下喜悦的心情,据说每个应用空间最多只能传1000个文件,嘿嘿。

这里有篇博友介绍Google App Engine缺陷及限制的文章,大家可以看看。

Quercus可以在未开放PHP语言支持的GAE上面运行PHP代码,甚至能把Java的类导入到 PHP里面执行。

目前已经在Quercus上存在的PHP应用有DokuWiki、Drupal、Gallery2、Mantis、Mediawiki、Openads、PHP-Nuke、phpMyAdmin、PHProjekt、Vanilla、Wordpress,上其官网都能看到如何在Quercus上安装这些应用(似乎没有如何在Google App Engine上安装的实例)。

GAE申请使用步骤第一步:当然是注册Google帐户,如果已注册,只要登陆即可,Google帐户只要注册一个,Google的所有应用都可使用。

app engine初级教程资料

app engine初级教程资料

环境准备:Google App Engine先要注册Google App Engine,注册地址/,然后建立一个application,目前第一次使用需要验证用户手机,输入手机号码就收验证码即可,之后,就可以用来访问你的app应用。

此外,还需要下载安装Google APP Engine的开发环境,注意Python的版本,需要是2.5系列的,不能使用2.6或更高的版本,否则运行会出错。

Google App Engine SDK 下载地址/intl/zh-CN/appengine/downloads.htmlPython 2.5.4 下载地址/download/releases/2.5.4/关于Google App Engine的详细使用说明请参见这个地址,这里我就不再累赘。

GAE的Hello World程序(1)为GAE做了一些准备工作(SDK,编译环境)之后,我们开始创建第一个GAE程序,我们从Hello Word 开始。

首先创建一个Hello目录,我这里在E盘下面之间建立Hello目录,然后在这个目录下面创建以下几个文件,app.yaml,hello.py。

其中app.yaml是很重要的文件,它告诉App Engine一些关于我的应用的最基本的信息和编译环境。

在Ulipad中打开app.yaml,将它的内容改为:********************************************************************************************************** application: helloversion: 1runtime: pythonapi_version: 1handlers:- url: .*script: hello.py********************************************************************************************************** 然后再命令提示符上输入dev_appserver.py --p=9000 E:\hello [9000是端口号]1.application: hello 表示你的应用的app-id是hello,这个在上传的时候应该改为你注册的应用的id。

Google App Engine 介绍

Google App Engine 介绍

什么是Google App Engine?Google App Engine 可让您在Google 的基础架构上运行您的网络应用程序。

App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。

使用Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。

您可以使用Google 企业应用套件通过自己的域名(例如/)提供应用程序。

或者,您可以使用域上的免费域名来为您的应用程序提供服务。

您可以与全世界的人共享您的应用程序,也可以限制为只有贵组织的成员可以访问。

Google App Engine 支持以几种编程语言编写的应用程序。

通过App Engine 的Java 运行时环境,您可以使用标准Java 技术(包括JVM、Java servlet 和Java 编程语言,或使用基于JVM 的解释器或解译器的任何其他语言,例如JavaScript 或Ruby)构建应用程序。

App Engine 还提供一个专用的Python 运行时环境,该环境包括一个快速Python 解释器和Python 标准库。

Java 和Python 运行时环境构建为确保应用程序快速、安全运行,并不受系统上的其他应用程序的干扰。

在App Engine 中,您只需为您使用的资源付费。

没有设置成本,也没有重复的费用。

您的应用程序使用的资源,如存储空间和带宽以千兆字节衡量,并以有竞争力的费率收费。

您可以控制您的应用程序可以消费的最大资源量,使其一直保持在预算范围内。

可以免费开始使用App Engine。

所有应用程序都可以使用多达500 MB 的存储空间,以及可支持每月约500 万页面浏览量的足够的CPU 和带宽,完全免费。

为您的应用程序启用付费后,您的免费配额将提高,您只需为使用的超过免费水平的资源付费。

松构建能安全运行的应用程序。

App Engine 包括以下功能:∙动态网络服务,提供对常用网络技术的完全支持∙持久存储空间,支持查询、分类和事务∙自动扩展和负载平衡∙用于对用户进行身份验证和使用Google 帐户发送电子邮件的API∙一种功能完整的本地开发环境,可以在您的计算机上模拟Google App Engine∙用于在指定时间和定期触发事件的计划任务您的应用程序可在以下两个运行时环境之一中运行:Java环境和Python环境。

前端工程师GoogleAppEngine前端技术架构解析

前端工程师GoogleAppEngine前端技术架构解析

前端工程师GoogleAppEngine前端技术架构解析今天看到几篇有关Google App Engine的技术架构文章,一起分享给大伙儿,没看到过的同学赶忙惊喜一下吧,看到过了的同学也假装惊喜一下嘛,呵呵。

全部文章有点长,请耐心看下去,相信程序员差不多上有耐心的,除了我.......一、Google的核心技术在切入Google App Engine之前,第一会对Google的核心技术和其整体架构进行分析,以关心大伙儿之后更好地明白得Google App Engine的实现。

本篇将要紧介绍Google的十个核心技术,而且能够分为四大类:◆分布式基础设施:GFS、Chubby 和 Protocol Buffer。

◆分布式大规模数据处理:MapReduce 和 Sawzall。

◆分布式数据库技术:BigTable 和数据库 Sharding。

◆数据中心优化技术:数据中心高温化、12V电池和服务器整合。

分布式基础设施GFS由于搜索引擎需要处理海量的数据,因此Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为"BigFiles"的文件系统,而GFS(全称为"Google File System")这套分布式文件系统那么是"BigFiles"的连续。

第一,介绍它的架构,GFS要紧分为两类节点:◆ Master节点:要紧储备与数据文件相关的元数据,而不是Chunk(数据块)。

元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格,数据块副本位置和哪个进程正在读写特定的数据块等。

还有Master节点会周期性地接收从每个Chunk节点来的更新("Heart- beat")来让元数据保持最新状态。

◆ Chunk节点:顾名思义,确信用来储备Chunk,数据文件通过被分割为每个默认大小为64MB的Chunk的方式储备,而且每个Chunk有唯独一个64位标签,同时每个Chunk都会在整个分布式系统被复制多次,默认为3次。

Google App Engine开发环境搭建之java篇

Google App Engine开发环境搭建之java篇

Google App Engine开发环境搭建之java篇安装 Java SDK您可以使用 App Engine Java 软件开发工具包 (SDK) 开发和上传 Google App Engine 的 Java 应用程序。

SDK 包含网络服务器软件,您可在自己的计算机上运行该软件以测试您的 Java 应用程序。

服务器可模拟所有的 App Engine 服务,其中包括数据存储区的本地版本、Google 帐户以及使用 App Engine API 从您的计算机抓取网址和发送电子邮件的功能。

获取 JavaGoogle App Engine 支持 Java 5 和 Java 6。

当您的 Java 应用程序在 App Engine 上运行时,它将使用 Java 6 虚拟机 (JVM) 和标准库运行。

理想情况下,您应使用 Java 6 编译和测试应用程序,以确保本地服务器的工作方式与 App Engine 相似。

对于不易获得 Java 6 的开发人员(如使用 Mac OS X 的开发人员),App Engine SDK 也兼容 Java 5。

可将通过 Java 5 生成的编译类和 JAR 上传到 App Engine。

根据需要下载并安装适用于您的平台的 Java SE 开发工具包 (JDK)。

Mac 用户可访问Apple Java 开发人员网站,以下载可用于 Mac OS X 的最新版 Java 开发人员工具包。

JDK 安装完成后,可从命令提示符(对于 Windows,为“命令提示符”;对于 Mac OS X,为“终端”)运行下列命令以验证您能够运行命令并确定所安装的版本。

如果您已安装 Java 6,则这些命令将报告一个类似于 1.6.0 的版本号。

如果您已安装 Java 5,则版本号将与 1.5.0 类似。

java -versionjavac -version使用 Eclipse 和 Eclipse Google 插件如果您使用的是Eclipse 开发环境,则开发、测试和上传 App Engine 应用程序最简便的方法是使用Eclipse Google 插件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

views.py
def add_post(request): if request.method == 'GET': form = PostForm() if request.method == 'POST': form = PostForm(request.POST) if form.is_valid(): post = form.save() post.author = users.get_current_user() post.put() return HttpResponseRedirect('/post/add/') return render_to_response('blog/add_post.html', {'form': form}, context_instance=RequestContext(request))
')
forms.py
from google.appengine.ext.db import djangoforms as forms from models import Post class PostForm(forms.ModelForm): class Meta: model = Post exclude = ['author']


Django
webapp
• Google App Engine Helper for Django • •
项 项
Blog 统 OnlyPython

• • •
发环
载Google App Engine SDK /appengine/downloads.html SVN 载 Django 码
urls.py
from django.conf.urls.defaults import * urlpatterns = patterns('onlypy.blog.views', (r'^post/add/$', 'add_post'), )
Run
• cd /yourpath/onlypython/ • python ./manage.py runserver 127.0.0.1:8000
import os import sys import logging from appengine_django import InstallAppengineHelperForDjango InstallAppengineHelperForDjango() # Google App Engine imports. from google.appengine.ext.webapp import util # Import the part of Django that we use here. import django.core.handlers.wsgi def main(): # Create a Django application for WSGI. application = django.core.handlers.wsgi.WSGIHandler() # Run the WSGI CGI handler with that application. util.run_wsgi_app(application) if __name__ == '__main__': main()
load balancing

• Python 2.5.2 • •运 • •应

CGI WSGI 访问 cron job 须 response C 扩 创 统 进
Django 0.96.1 CGI Sandbox socket 时间 须
纯Python
储 Datastore
• • • • • • •
Google BigTable 对 Model 查询 务 储过 记录 库 储 务 ORM
join, sum, avg 查询 检 1000
App Engine Service
• Google帐 • Gmail
认证
发 email
• URL Fetch • Memcached • Image (PIL)
settings.py
TIME_ZONE = 'UTC' MIDDLEWARE_CLASSES = ( 'monMiddleware', 'appengine_django.auth.middleware.AuthenticationMiddleware', ) ROOT_URLCONF = 'urls' ROOT_PATH = os.path.dirname(__file__) TEMPLATE_DIRS = ( os.path.join(ROOT_PATH, 'onlypy/templates') ) INSTALLED_APPS = ( 'appengine_django', 'django.contrib.auth', 'onlypy.blog', )
录结构
录) js, css, 图 ) ) ) ) ) )
--- appengine-django (app engine helper for django
--- app.yaml (app engine --- index.yaml (app engine --- main.py (app engine 启动 --- manage.py (Django --- settings.py (项 --- urls.py (URL mapping)
(
Fixed Quota

)
Per Day Usage Quotas
约500
PV/

• $0.10 - $0.12 per CPU core-hour • $0.15 - $0.18 per GB-month of storage • $0.11 - $0.13 per GB outgoing bandwidth • $0.09 - $0.11 per GB incoming bandwidth
TODO:
Blog
models.py
from google.appengine.ext import db class Category(db.Model): name = db.StringProperty() def __str__(self): return class Post(db.Model): author = erProperty() title = db.StringProperty(required=True, verbose_name=u'标题') tag = db.StringProperty(verbose_name=u'标签') content = db.TextProperty(required=True, verbose_name=u' ') create_time = db.DateTimeProperty(auto_now_add=True) update_time = db.DateTimeProperty(auto_now=True) category = db.ReferenceProperty(Category, required=True, verbose_name=u' is_published = db.BooleanProperty(verbose_name=u' 发 def get_absolute_url(self) : return '/post/%s/'%self.key().id() ')
请Google App Engine
• / • • • •
过Gma
习Web 发 idea, scalability问题 startup
• 尝试 •
app.yaml
application: onlypython version: 1 runtime: python api_version: 1 handlers: ‐ url: /static static_dir: static ‐ url: /.* script: main.py
main.py
/svn/django/trunk/ 载Google App Engine Helper for Django /p/google-app-engine-django/

--- django (django --- onlypy (项 --- static ( 态 码 录) 录 录)
index.yaml
indexes: ‐ kind: Post properties: ‐ name: is_published ‐ name: create_time direction: desc
• App Gallery /

•对 • • • •
线处 导 /导 费计 传 载 语
Django简
Django简

Python full-stack Web
• ORM, URL mapping, admin interface,
template, middleware, i18n, cache...
Django创 Google App Engine应
胜 @
• Google App Engine • Django •
码 绍

Google App Engine 绍
Google App Engine
• Google • • • •
Web Hosting 务 Google 动Scaling 储 务 Google User认证 Gmail 务 础设 Web应 应
相关文档
最新文档