AWS S3 本地测试环境的搭建

s3 本地测试环境的搭建

s3 ninja

http://s3ninja.net/ s3 ninja 在本地模拟S3 API, 而且自带一个管理界面, 但是需要修改代码或者增加配置,把endpoint_url指定为 http://localhost:9444/s3

如果我们不想修改代码,可以通过一些简单的配置把请求导向本地 s3 ninja

s3 virtual hosted-style and path-style access

访问s3 bucket上的文件,有两种方式:

# example bucket名字 johnsmith  文件 homepage.html

# Path Style
http://s3.amazonaws.com/johnsmith/homepage.html

# Virtual Hosted–Style
http://johnsmith.s3.amazonaws.com/homepage ...

继续阅读

YAML简介

YAML简介

YAML(尾音类似camel)是一个可读性高,用来表达数据序列化的语言。 在最初的时候YAML表示Yet Another Markup Language,但是现在YAML Ain’t Markup Language。

官方的定义是这样写的:YAML is a human friendly data serialization standard for all programming languages.

可读性好

YAML格式有很好的可读性,对比JSON格式,增加了换行和缩进,就像Python一样。:

name: Vorlin Laruknuzum
sex: Male
class: Priest
title: Acolyte
hp: [32, 71]
sp: [1, 13]
gold: 423
inventory:
- a Holy Book of Prayers ...

继续阅读

使用Python操作亚马逊DynamoDB

使用Python操作亚马逊DynamoDB

DynamoDB 是亚马逊AWS提供的一种完全托管的NoSQL数据库,省去部署/监控/维护数据库环节,给开发者节约了大量时间。 而且亚马逊提供了一个本地模拟环境用于测试和开发,我们可以使用本地的DynamoDB.local来学习和熟悉DynamoDB的API。

下载DynamoDB.local

从亚马逊的官方文档可以找到下载地址

解压之后:

dynamodb_local_2015-07-16_1.0$java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:   false
DbPath: null
SharedDb:   true
shouldDelayTransientStatuses:   false
CorsParams: *

在浏览器中打开http://localhost:8000/shell/,你会看到DynamoDB javascript shell,在网页上你可以试试javascript API的用法。

image

Boto3

在试用之后javascript ...

继续阅读

最近开发过程中遇到的小问题总结

small tips

最近的工作中遇到一些问题,记录了下来,希望后来的人不要再踩坑了。

all()

all()是python的一个内置函数,官方文档里面说如果所有的元素都为True,all()才返回True。:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

有一些情况需要注意,当list为空时,返回True;空字符串,None,0 的结果都是False。:

>>> all([])
True
>>> all(['a', 'b', 'c'])
True
>>> all(['a', 'b', ''])
False
>>> all(['a', 'b', None])
False
>>> all(['a ...

继续阅读

使用Python操作亚马逊S3

使用Python操作亚马逊S3

亚马逊S3(Amazon Simple Storage Service) 为开发人员和IT团队提供安全、耐久且扩展性高的对象存储。 可以理解为一个在线的网盘,而且这个网盘可以通过程序上传,下载,获取外链。亚马逊按照存储空间和请求次数收费。

对小公司来说是一个稳定的在线存储,可以减少维护成本。

boto3 Python SDK

目前官方推荐的Python SDK 是boto3 https://github.com/boto/boto3

接下来进入正题,直接看代码把。:

from boto3.session import Session

session = Session(aws_access_key_id='<key>', \
    aws_secret_access_key='<key>', \
    region_name='us-east-1')

s3 = session.resource('s3')
client = session.client('s3')

#上传
data = open('~/beakup.gif', 'rb ...

继续阅读

Python中class的JSON序列化

Python中class的JSON序列化

在Java中如果定义一个class,是十分方便JSON序列化的,比如说使用jackson lib。

但是在Python中如果使用json.dumps(a),a如果不是一个简单类型的就会报错:

TypeError: <__main__.A instance at 0x109d553b0> is not JSON serializable

其实Python的class也十分方便JSON序列化,需要一小段代码就可以:

import json
from json import JSONEncoder

def obj2dict(obj):
    memberlist = [m for m in dir(obj)]
    _dict = {}
    for m in memberlist:
        if m[0] != "_" and not callable(m):
            _dict[m] = getattr(obj, m ...

继续阅读

如何在亚马逊ec2上部署django应用

如何在亚马逊ec2上部署django应用

很多时候我们会在环境配置上花大量的时间,这里我记录了一下我配置的过程,希望能节省大家一些的时间。

我的环境是amazon ec2,选择的操作系统是Amazon Linux AMI 2015.03 (HVM) ,选择的最常见的部署方案 nginx + gunicorn + django + mysql

mysql

首先安装mysql-sever:

$sudo yum install mysql-server mysql mysql-devel
$sudo chown mysql.mysql -R /var/lib/mysql

修改配置文件/etc/my.cnf:

[mysqld]
datadir=/var/lib/mysql # 数据文件存放的位置,修改成适合的位置

character-set-server=utf8 # 设置默认编码

[client]
default-character-set=utf8 # 设置默认编码

启动mysql:

$sudo service mysqld ...

继续阅读

如何使用pyside+Html5开发桌面应用

如何使用pyside+Html5开发桌面应用

pysideQt 的Python绑定,使用没有任何限制,而且配合python丰富的类库和简洁的语法,开发起来非常方便

pip

如果Python版本是2.7.9或者是3.4 以上,pip默认包含于Python的安装包中

怎么安装pip,参考这里 https://pip.pypa.io/en/latest/installing.html

安装pyside

在Ubuntu 和 DeepinLinux 下安装非常方便:

sudo apt-get install python-pyside

或者使用pip安装:

sudo pip install pyside

创建窗口

学习所有的GUI程序,第一步都是创建一个窗口,下面的程序创建了一个无边框的窗口。:

class MainWindow(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self ...

继续阅读

如何使用django-zinnia-blog建站

如何使用django-zinnia-blog建站

django-zinnia-blog 顾名思义就是一套用Django开发的个人博客程序,虽然比大名鼎鼎的wordpress略显简陋,不过在以Python作为开发语言的博客系统中算是很不错的。

pip

如果Python版本是2.7.9或者是3.4 以上,pip默认包含于Python的安装包中

怎么安装pip,参考这里 https://pip.pypa.io/en/latest/installing.html

virtualenv

virtualenv 用于创建独立的Python环境,可以不受全局的site-packages当中安装的包的影响。:

pip install virtualenv
# 创建虚拟环境
virtualenv ENV
cd ENV
source ./bin/activate

磨刀不误砍柴工,接下来开始大展身手啦。

django-zinnia-blog

直接使用pip安装:

pip install Pillow
pip install django-zinnia-blog
#如果数据库使用MySQL
pip install python-mysql

然后按照 http://docs.django-blog-zinnia ...

继续阅读

年度归档