分享

百度云BAE开发语言环境介绍:Python

pig2 发表于 2013-12-27 00:11:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 23094
对于关心百度云开发的同志们,这里给大家介绍百度云支持的Python语言概述BAE3.0中,python runtime运行在一个独立的容器中,直接使用系统自带python2.7.3官方版本,未修改或封禁任何函数和模块,开发者面对原生的python环境。
3.0中我们仍然需要遵循WSGI规范开发python-web应用,但我们新增一种新的应用类型 worker。web类型支持http访问,例如常规的互联网应用。worker类型支持运行后台任务,例如长时间抓取数据的程序等。开发者可根据自己的业务逻辑选择使用。
另外3.0中不再只支持预装的模块,而是使用官方的包管理工具pip与requirements.txt来处理开发者们需要的第三方依赖。开发者只需在上传代码的同时,添加一个名为requirements.txt的文件,其中指定要求的依赖包信息,这些模块就会被下载安装到应用根目录的deps目录下。

开发指南下面分别给大家演示web和worker类型的两个demo。
web类型demo演示
demo目标:创建一个python web应用,http请求后返回”Welcome to Baidu Cloud! Pythonwebdemo1”字段。
1. 创建应用,添加BAE部署,选择“python-web”类型。 详细操作步骤参考新手入门
2. 修改index.py 的内容,使返回字符串为” Welcome to Baidu Cloud! Pythonwebdemo1”
3. 提交代码,发布最新版后。查看线上页面效果。
worker类型demo演示
demo目标:创建一个后台程序,无限循环,且每隔3秒钟打印”test test”字段。
1. 创建应用,添加BAE部署,选择“python-worker”类型。详细操作步骤参考新手入门
2. 修改foo.py 的内容,在while循环中添加字符串打印逻辑:
import timeimport syswhile True:    time.sleep(3)    sys.stdout.write("test test\n")    sys.stdout.flush()3. 提交代码,发布最新版后。查看本地日志,可以看到字符串“test test”在不断输出。
扩展服务目前支持的扩展服务包括:

    • 1.MySQL(数据库) 提供分布式的关系型数据库服务。
    • 2.Redis(数据库) 提供key-value型非关系型数据库服务。
    • 3.MongoDB(数据库) 提供分布式的非关系型数据库服务。
    • 4.Cache(缓存) 提供高性能的分布式的内存对象缓存服务。
    • 5.Image(图片处理) 提供图片抓取和按照用户定义的操作对图片进行处理的服务。
    • 6.NFS(网络文件系统)提供分布式读写功能。
    • 7.Log(日志) 提供日志记录服务。

框架支持BAE3.0中使用requirements.txt来处理依赖,同样我们用一个demo来演示。
demo目标:安装使用django框架,且指定版本为1.5.2。为了展示简单,我们在应用代码中加载django模块,输出其版本信息即可。
1. 创建应用,添加BAE部署,选择“python-web”类型。 详细操作步骤参考新手入门
2. 在目标文件夹中增加一个名为“requirements.txt”的文件,写入”django==1.5.2”
3. 修改index.py中的内容,导入django模块,并使用django.get_version()函数输出django模块的版本信息。即在return字段前增加如下代码段:
import djangoreturn "django version: " + django.get_version()4. 提交代码,发布最新版后。访问域名可看到“django version: 1.5.2”版本号
日志调试当用户的应用开始运行时,可以通过我们的应用日志来对应用的状态进行查看 以及相关代码的调试。
  • 1.默认日志
默认情况下,web类型的应用我们会提供三类日志“lighttpd.log”、“lighttpdwf.log”。

    • 1.lighttpd.log 实时的显示lighttpd web服务器的请求日志;
    • 2.lighttpdwf.log 实时的显示lighttpd web服务器的错误日志;
  • 2.自定义日志
如果用户觉得日志种类不够,也可以自己来定制日志的种类和内容,只需要用户自定义的内容输出到 “/home/bae/log” 下即可,如 “/home/bae/log/user.log”,那么就可以在日志界面中看到。
注意事项BAE3.0,中python runtime和之前的版本有所区别:
1. 删除了之前常用的bae.core.const模块,不再把如MySQL服务地址等的变量放到该模块中,而是给开发者最大的自由,让其自行填写
2. BAE3.0自有服务如Memcache、Image等,其SDK均未预装在python环境中,以减轻系统负担,开发者使用时,可参看前文描述的”框架支持”章节,使用requirements.txt指定bae_memcache或bae_image,即可动态下载安装使用,或者直接使用我们提供的云存储源码包,详见扩展服务章节。  

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条