对App Engine来讲最简单的Python应用是一个有两个文件的简单目录:一个称为app.yaml的配置文件,一个用于请求处理器的Python代码文件。包含app.yaml文件的这个目录就是这个应用的根目录。在使用工具时,你会经常用到这个目录。

※如果你使用Launcher,你可以通过选择File菜单New Application,来创建一个新项目。Launcher创建一个有一些文件的新项目,你可能会希望在这个例子中会编辑这些文件。可选择的是,你也可以手动创建这个项目目录和文件,然后通过单击File菜单,Add Existing Application,把这个项目追加到Launcher上。

创建一个叫做clock的目录来包含这个项目。使用你喜欢的文本编辑器,在这个目录中创建一个叫做app.yaml的文件,类似于例2-1。

例2-1:一个简单应用的配置文件,使用Python2.7运行环境

application:clock
version:1
runtime:python27
api_version:1
threadsafe:true handlers:
-url:.*
script:main.application libraries:
-name:webapp2
version:"2.5.1"

这个配置文件使用了一个叫做YAML的格式,一个用于配置文件和网络信息(network message)的开放格式。你没有必要知道超过在这儿看到的更多关于格式的内容。

在这个例子中,这个配置文件告诉App Engine一个叫做clock的应用的版本1,它使用了Python2.7运行时环境的版本1(api_version)。对于这个应用的每个请求(每个匹配正则表达式.*的URL,表示所有的URL)将会被定义在一个叫做main的Python模块的application变量中的应用对象(application object)处理。

※在Python2.5运行时环境中,URLs被映射到源文件的名字,作为CGI脚本执行。尽管在Python2.7中这还是被支持的,但是并发的请求(多线程)要求这个新方法,它会参照(refer to the WSGI instance global variable in the app.yaml configuration)在app.yaml配置中的WSGI实例全局变量。

在app.yaml相同的目录下,创建一个叫做main.py的文件,类似例2-2。

例2-2.一个简单的Python网络应用,使用webapp2框架

import datatime
import webapp2 class MainPage(webapp2.RequestHandler):
def get(self)
message = '<p>The time is:%s</p>' % datetime.datetime.now()
self.response.out.write(message) application = webapp2.WSGIApplication([('/',MainPage)],debug = True)

这个简单的Python网络应用使用了App Engine自带的一个叫做webapp2的网络应用框架。这个框架符合Python的网络应用框架的通用标准,也就是Web Server Gateway Interface(WSGI)。你不需要知道很多WGSI,除了它是一个Python标准,有许多有用的框架可供选择,使用各种适配器(比如WSGI-to-CGI适配器)很容易将WSGI应用port到其他的应用管理环境(application hosting environment)。webapp2是WSGI框架的一个简单例子。Django是另一个例子,它是一个有名的开源Python网络应用框架,也包含在App Engine中。

<Chapter 2>2-2-2.开发Python应用(Developing a Python App)的更多相关文章

  1. Python自动化运维开发实战 一、初识Python

    导语 都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊.批量执行某个操作啊.写写监控脚本什么的. ...

  2. 第一模块·开发基础-第1章 Python基础语法

    Python开发工具课前预习 01 Python全栈开发课程介绍1 02 Python全栈开发课程介绍2 03 Python全栈开发课程介绍3 04 编程语言介绍(一) 05 编程语言介绍(二)机器语 ...

  3. 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE

    http://www.crifan.com/how_to_do_python_development_under_windows_environment/ 本文目的 希望对于,如何在Windows下, ...

  4. Python Web框架本质——Python Web开发系列一

    前言:了解一件事情本质的那一瞬间总能让我获得巨大的愉悦感,希望这篇文章也能帮助到您. 目的:本文主要简单介绍Web开发中三大基本功能:Socket实现.路由系统.模板引擎渲染. 进入正题. 一. 基础 ...

  5. windows下使用pycharm开发基于ansible api的python程序

    Window下python安装ansible,基于ansible api开发python程序 在windows下使用pycharm开发基于ansible api的python程序时,发现ansible ...

  6. python开发第一篇:初识python

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  7. Python开发(一):Python介绍与基础知识

    Python开发(一):Python介绍与基础知识 本次内容 一:Python介绍: 二:Python是一门什么语言 三:Python:安装 四:第一个程序 “Hello world” 五:Pytho ...

  8. 为什么我建议每个开发人员都需要学Python?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/10-reasons-why-every-d ...

  9. Python合集之Python开发环境在Windows系统里面搭建

    在上一个合集里面我们了解到了Python的基础信息及学习了Python对我们有什么用处,那么今天我们来了解一下,Python的开发环境该如何搭建.(注:Python的开发环境可以在Windows.MA ...

随机推荐

  1. 在C#中怎么调用Resources文件中的图片

    譬如资源中有名为myPic的图片,在代码中可以这么使用: this.BackgroundImage = Properties.Resources.myPic; 如有疑问,继续追问.

  2. PHP工程师面临成长瓶颈

    作为开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢?PHP工程师面临成长瓶颈 ...

  3. CentOS5.5 正式开始安装 Oracle 11g r2(图形界面安装)

    一.下载oracle 官方网站, 可以下载最新版本 Oracle Database 11g Release http://www.oracle.com/index.html CentOS5. i386 ...

  4. bzoj1563

    P<=10一开始是吓死我了 后来想到这就是一个经典的决策单调性解决1d1d动态规划的题目 像决策单调性完全可以打表找规律,这里有一篇严谨的证明https://www.byvoid.com/blo ...

  5. 设置mysql的interactive_timeout和wait_timeout的值

    1,为什么要重新设置这两个变量的值? 因为如果数据库默认这两个变量的值是8小时(即28800秒)如果在8小时之内没有连接到数据库,等下次再连的时候就会抛连接超时,或连接关闭这样的异 常,但是多连接几次 ...

  6. poshytip两个实用示例

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> < ...

  7. VS2005中乱码问题

    VS2005打开某些文件(如.inc, js)的时候出现乱码: 解决方法: 工具 --> 选项 --> 文本编辑器 --> 将“自动检测不带签名的 UTF-8编码”选中保存即可. V ...

  8. git - 搭建git仓库

    1. 更新git版本: http://codelife.me/blog/2013/06/25/upgrade-git-on-centos-6-4/ 2. 建立git仓库: git init --bar ...

  9. 【C#学习笔记】Dictionary容器使用

    using System; using System.Collections.Generic; namespace ConsoleApplication { class Program { stati ...

  10. java中的final、finally和finalize

    最近在读Thinking In Java,秉着有些地方还能知道自己不会的精神,都去好好查阅了一些资料,在内存分配这一章,看到finalize()这个方法,刚开始很不理解,查阅了一些资料,顺带看了一下f ...