Python raise

1
2
3
4
5
6

try:
1/0
except ZeroDivisionError:
do something
raise

Read More

Python包工具梳理

distutils 是 python 标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。

假设目录创建三个文件foo.py、bar.py和setup.py

1
2
3
4
5
6
7
8
9
from distutils.core import setup
setup(
name='fooBar',
version='1.0',
author='Will',
author_email='wilber@sh.com',
url='http://www.cnblogs.com/wilber2013/',
py_modules=['foo', 'bar'],
)

在该目录中运行 python setup.py sdist ,会得到以下输出,同时生成了一个”fooBar-1.0.zip”包。

甚至能打包成 rpm 或者 exe 安装包:

1
2
python setup.py bdist_rpm
python setup.py bdist_wininst

Read More

Flask

flask快速启动

flask代码块
http://flask.pocoo.org/snippets/

flask的网站
http://flask.pocoo.org/community/poweredby/

Read More

input框中value与placeholder的区别

input框中value与placeholder的区别

value:是input中预先放置的文字,当鼠标点击之后依然存在,是值的一部分。
placeholder:是input中输入位置的默认显示的文字,鼠标点击后仍旧显示,但不属于值,类似于背景。

Read More

Django_Models

Django 的 ORM 有多种关系:一对一,多对一,多对多。

各自定义的方式为 :

Read More

python之@property,@staticmethod,@classmethod

#coding=utf-8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class MyClass(object):
def __init__(self):
print 'init'
self._name = 'the5fire'

@staticmethod
def static_method():
print 'This is a static method!'

@classmethod
def class_method(cls):
print 'This is a class method',cls
print 'visit the property of the class:',cls.name
print 'visit the static method of the class:',cls.static_method()
instance = cls()
print 'visit the normal method of the class:',instance.test()


def test(self):
print 'call test'

@property
def name(self):
return self._name

if __name__ == '__main__':
MyClass.static_method()
MyClass.class_method()
mc = MyClass()
print mc.name
mc.name = 'huyang'

Read More

Python程序内存优化

使用slot

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import resource


class Foo(object):
# __slots__ = ('val1', 'val2','val3','val4','val5','val6')

def __init__(self, val):
self.val1 = val + 1
self.val2 = val + 2
self.val3 = val + 3
self.val4 = val + 4
self.val5 = val + 5
self.val6 = val + 6


def f(count):
l = []
for i in range(count):
foo = Foo(i)
l.append(foo)

return l


def main():
count = 10000
l = f(count)

mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss

print("Memoryusageis: {0} KB".format(mem))

print("Sizeperfooobj: {0} KB".format(float(mem) / count))


if __name__ == '__main__':
main()

Read More

Curl vs Wget

共性

都是可以从FTP、HTTP、HTTPS下载内容的命令行工具
都可以发送HTTP POST请求
都支持HTTP cookies
都被设计为工作中无需用户干涉——像内置脚本一样
都是完全开源免费的
都是90年代的项目
都支持metalink

Read More

Docker命令

Docker 是实现轻量级的操作系统虚拟化解决方案。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

基本概念

Docker 包括三个基本概念

Read More

Git忽略文件不加入版本控制

共享式忽略

可以被git clone,只是是不在版本库里,比如说一些IDE的配置如果没有被.gitignore,可能会被别人merge什么的
新建 .gitignore 文件,放在工程目录任意位置即可。.gitignore 文件可以忽略自己
.gitignore文件可以被提交到共享库中被协作者共享

Read More