BAE 是百度推出的一个云平台,类似于谷歌GAE,新浪SAE, 但谷歌经常被 “和谐”,而SAE的使用我也未能申请成功,这里PS 一下新浪. 好在百度 今年3.9日正式开放了BAE 云平台,所以就注册了开发者,而且还抢到了1000块的代金卷。申请了一个 合作网站类型的 python 应用。

百度有详细的说明文档,如何部署django 的应用,详细请参考官方文档:http://developer.baidu.com/wiki/index.php?title=docs/cplat/rt/python

这里我想总结下要注意的几点事项。

1. 在settings.py 中数据库的配置,我这里配置是区分本地环境和BAE 环境的。用了:if 'SERVER_SOFTWARE' in os.environ 来做判断.if 'SERVER_SOFTWARE' in os.environ:

from bae.core import const

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'you_apply_database_name',

'USER': const.MYSQL_USER,

'PASSWORD': const.MYSQL_PASS,

'HOST': const.MYSQL_HOST,

'PORT': const.MYSQL_PORT,

}

}

else:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'xieyin',

'USER': 'root',

'PASSWORD': 'password',

'HOST': 'localhost',

'PORT': '3306',

}

}

当然,在此之前,你还得需要在BAE 上申请一个 云数据库,用PHPADMIN 管理等。注意编码一般改为UTF-8的。

2. BAE 云环境是不能上传文件的,上传文件,必须通过个人云存储来实现。而 BAE 提供了PYTHON 云存储的SDK. 可以直接使用。当然你必须先在云存储中创建bucket,在bucket里面,你还可以创建文件夹等.

在python 中的代码如下:

import time

import os

from bae.core import const

from bae.api import bcs

HOST = const.BCS_ADDR

AK = const.ACCESS_KEY

SK = const.SECRET_KEY

def test_bcs():

### 首先通过云存储管理界面,创建一个bucket

bname = 'yihaomen'

### 创建BCS管理对象

baebcs = bcs.BaeBCS(HOST, AK, SK)

### 读取一个测试文件的内容

filename = os.path.dirname(__file__) + "/favicon.ico"

with open(filename) as fd:

data = fd.read()

### 将文件内容上传到 '/obj1' 下

o1 = '/upload/201303/obj1'

e, d = baebcs.put_object(bname, o1, data)

assert e == 0

### 上传文件有一定的延迟

time.sleep(1)

### 从 '/obj1' 获取数据

e, d = baebcs.get_object(bname, o1)

assert e == 0

assert d == data

### 也可以直接上传文件

o2 = '/obj2'

e, d = baebcs.put_file(bname, o2, filename)

### 将object内容保存到临时目录下

tmpdir = (const.APP_TMPDIR if const.APP_TMPDIR else "/tmp")

filename2 = tmpdir + "/favicon.ico"

e, d = baebcs.get_to_file(bname, o2, filename2)

assert e == 0

### 列出所有的object

e, d = baebcs.list_objects(bname)

assert e == 0

参考文档: http://pythondoc.duapp.com/bcs.html

当然,还有一个独立的SDK 可以参考,可以在BAE 外部环境使用的SDK:

http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E4%BA%91%E5%AD%98%E5%82%A8#Python_SDK

3. 对于图片放大,缩小,裁剪等的处理

from bae.api.image import BaeImage

def app(env, start_response):

status = "200 OK"

headers = [('Content-type', 'image/gif')]

start_response(status, headers)

img = BaeImage()

### 设置待处理图片

img.setSource("http://www.baidu.com/img/baidu_sylogo1.gif")

### 设置目标图片尺寸

img.setZooming(BaeImage.ZOOMING_TYPE_PIXELS, 100000)

### 设置裁剪参数

img.setCropping(0, 0, 2000, 2000)

### 设置旋转角度

img.setRotation(10)

### 设置灰度级别

img.setHue(100)

### 设置亮度级别

img.setLightness(100)

### 设置对比度级别

img.setContrast(1)

### 设置锐化级别

img.setSharpness(10)

### 设置色彩饱和度级别

img.setSaturation(10)

### 设置图片格式

img.setTranscoding('gif')

### 设置图片压缩质量

img.setQuality(20)

### 设置获取gif图片第一帧

img.setGetGifFirstFrame()

### 设置自动校准

img.setAutoRotate()

### 执行图片处理

ret = img.process()

### 返回图片base64 encoded binary data

body = ret['response_params']['image_data']

import base64

return base64.b64decode(body) # 这里返回的就是图片的内容,保存下来就是图片,如果需要保存到BCS 中,结合上面的处理方式就可以保存了。

参考文档:http://pythondoc.duapp.com/image.html

部署了自己的一个小应用上去,还没完善,仍然在开发中: yihaomen.duapp.com

python搭建django环境_在BAE上搭建python,django环境小记相关推荐

  1. python数据分析开发环境_在MAC上搭建python数据分析开发环境

    最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...

  2. python简易搭建环境_在Windows上搭建Python2.7环境

    介绍 介绍 国人喜欢跟风,有人带节奏,就会有大批的人跟着走,这种心理时常会被利用,Python这个语言其实是最不适合初学者学习的语言,它的语法不伦不类,它的定位不清不楚,它能解决的问题很小众,它确被带 ...

  3. python 网关控制家居_在树莓派上搭建智能家居网关

    智能家居系统利用大量的物联网设备(如温湿度传感器.安防系统.照明系统)实时监控家庭内部状态,完成智能调节.人机互动.随着物联网技术的发展,其应用范围.数据规模.市场份额将进一步扩大,智能家居设备之间的 ...

  4. mac 自带 java 环境_在mac上搭建了Java 环境,谨以此文写给自己

    最近跳槽算空挡期吧,还是感觉这两年有点浮躁,总有想把自己归零一下,总结一下重新上路. 以前windows上搞过点java,自从入了iOS的坑,mac上还没搞过,现在借着面试facebook的准备时间, ...

  5. python自动部署环境_在 CentOS 上初始化 Python 环境的自动部署脚本

    . ├── 0_start.sh ├── 1_shell_init.sh ├── 2_deploy_firewall.sh ├── 3_install_git.sh ├── 4_install_pip ...

  6. python ssl模块安装_在Windows上安装Python的SSL模块(2.5.4)

    由于AppEngine需要通过SSL上传你的应用程序,所以我尝试在我的工作笔记本电脑上安装这个模块.在 它是一个安装了python2.5.4x86的x64win7系统.在 但主要的问题是,MinGw和 ...

  7. python jupyter输出结果_在Jupyter上学习python(U.1)

    为mooc网站的北京理工大学的 嵩天 .黄天羽 .礼欣 三位老师的课程笔记. Python学习 一.Python基本语法元素 1.程序设计基本方法 1.计算机的概念:功能性.可编程性: 计算机发展:遵 ...

  8. python图片转手绘_在Mac上用python运行图片转手绘图的代码报错,请各位大佬帮忙。...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 原文代码: # -*- coding: utf-8 -*- from PIL import Image import numpy as np im = I ...

  9. 微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试

    微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试 技术qq交流群:JavaDream ...

最新文章

  1. 连接php的作用是什么,什么是超链接,有什么作用
  2. Geany整体增加减少缩进快捷键
  3. linux 查看文件夹大小 du命令
  4. ant接口自动化 junit_Jenkins + Ant自动运行Junit测试
  5. SAP Spartacus的configModule
  6. java实现HTTP请求的三种方式
  7. 组件php53 php55区别,分享下php5类中三种数据类型的区别
  8. vue 水平居中_小心!你弹琴的坐姿暴露了你演奏的水平!
  9. Android 再爆新漏洞,9.0 以下所有手机全部中招!
  10. python有float行吗_python – 有什么方法可以在将pandas系列从str转换为float时跳过不可转换的行?...
  11. VS2005无法打开网站
  12. vue公式编辑器 加强版(简化版)
  13. 设计师必备15个超赞的配色网站,从此配色无忧!
  14. Kindle刷安卓双系统的方法_我是亲民_新浪博客
  15. jetson nano 报错Illegal instruction(core dumped)
  16. Android Studio 更换/设置App应用图标Icon
  17. JVM(5)_方法区和大厂面试题
  18. 最近项目开发再一次遇到了启动idea报错:Plugin Error Problems found loading plugins: Plugin “GlassFish Integration“ was
  19. 60w风扇用多大电容_家用电风扇电容大小一般是多少
  20. 计算机中关于数字的进制转换

热门文章

  1. Spring自定义属性编辑器及原理解释.md
  2. 【转】iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
  3. IIS7.5标识介绍
  4. 显示滚动条后,table 表头与内容不对齐,JS脚本控制
  5. oracle字符数量,Oracle中统计表中每行字段符合条件的数量
  6. 滤波器m矩阵 awr 不一样_云南tte滤波器_灿勤科技
  7. GStreamer入门概念(二)
  8. 高通audio数据到Speaker播放流程
  9. android 4.0 蓝牙分析之一
  10. javap命令生成native需要的签名