在BAE上搭建python,django环境小记
生活随笔
收集整理的這篇文章主要介紹了
在BAE上搭建python,django环境小记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:http://www.yihaomen.com/article/python/368.htm
作者:輕舞肥羊 日期:2013-03-13
字體大小: 小 中 大 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
除非申明,文章均為一號門原創,轉載請注明本文地址,謝謝! [本日志由 輕舞肥羊 于 2013-03-13 10:07 AM 編輯]
文章來自:本站原創
引用通告:查看所有引用 | 我要引用此文章
Tags:bae python django
相關日志:
- 百度BAE想說愛你并不容易[172]
- 再次在BAE上用DJANGO搭建了一個網站[356]
- 如何用 python,Djano 生成 SEO 友好的 URL, 包含中文處理[36]
- 一個比較好用的python反編譯工具[114]
- 用python 實現 java.util.Properties 類的一些基本操作[63]
- python 序列化成json 亂碼問題的解決[135]
- 是否該祭奠死去的ZOPE, 曾經浪費了我一年的青春.[147]
- python得到得到當前登錄用戶信息[116]
- python解析xml的簡單例子[219]
- django admin 根據用戶顯示不同的列表以及編輯界面等[330] 分頁: [1][2][3][4][5]
模式: 全部顯示[共114個相關文章]
輕舞肥羊 于 回復 當然可以,前提是你要申請 百度 云存儲,然后調用相應的API 就可以了,我的上傳圖片都是這樣解決的。 zl[2013-07-03 09:44 AM] 請問一下,bae里面如何獲取get、post中的信息啊?這些知識從哪里看呢?百度的python開發指南總共也沒幾個字
輕舞肥羊 于 回復 如果你用django的話,里面有request.POST,request.GET可以得到很多信息,這個與百度bae無關。好好看看django就知道了。 zl[2013-07-03 09:40 AM] 請問一下,bae怎么獲取網頁的get、post中的參數,這些知識該往哪里看啊?python開發指南總共都沒幾個字。。。 zsc1528[2013-06-28 09:57 AM] 使用BAE django,我把本地數據庫上傳到云數據庫文件的時候,我用的是從云存儲bucket導入的,但是一直提示導入失敗。 請大牛指點一下上傳的注意事項,多謝。
billychou[2013-06-26 11:29 PM] 小白弱弱的問一句,我在本地開發的時候,用的是Django的ORM,直接創建數據庫,但是在BAE環境下面,數據庫都要自己創建嗎? 多謝。
輕舞肥羊 于 回復 是的,我的是自己創建的。在本地導出SQL 結構數據,在BAE 上導入的。
輕舞肥羊 于 回復 BAE 支持在線修改,其實還是很方便的。 applepi[2013-03-28 11:41 AM] 問一下大拿:
我沒有用bae這個python sdk, 用的是pybcs這個sdk, 估計是bae sdk 的一個子集,
想從django admin 中(web環境)直接上傳本地文件到服務器,卻總是不成功, 比如上傳圖片的時候要怎么把圖片二進制信息添加到object里. 官方文檔寫的也不太清楚...有沒有辦法解決? QQ:35943132 大叔[2013-03-15 01:30 PM] 這是打算把博客放bae上?
博客的圖片打算怎么處理?
輕舞肥羊 于 回復 圖片放到BAIDU的云存儲中,可以直接調取,很方便的。 dyfire[2013-03-15 01:26 PM] put_file 方法一直 internal server error 不知道是何故
輕舞肥羊 于 回復 我保存文件,圖片到云存儲都很正常,注意bucket,以及你的appkey 等。
總結
以上是生活随笔為你收集整理的在BAE上搭建python,django环境小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地球末日生存铅怎么得 把地球装进电脑
- 下一篇: deeplearning4j – 分布式