自动生成数据库结构文档,文档格式为 Makrdown。
- 自动生成主文档: 数据表,字段说明
- 自动生成变更日志
- 记录数据表的添加、删除
- 记录字段的添加、删除
| """ | |
| 参考: [Django logging settings](http://www.lexev.org/en/2013/django-logging-settings/) | |
| 代码: https://gist.github.com/st4lk/6725777 | |
| 修改内容: | |
| * formatters: 分成 default_formatter, debug_formatter | |
| * NullHandler: 采用 logging 模块的 NullHandler | |
| * 格式中增加毫秒数: %(msecs)s | |
| * 增加 django.db.backends 的配置,把 SQL 记录在日志文件里面 |
| # -*- coding: utf-8 -*- | |
| """ | |
| 使用 py.test -s test_setup_teardown.py 运行 | |
| """ | |
| import os | |
| def multiply(x, y): | |
| return x * y | |
| outputs = ["", "", "----"] |
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| u"""MySQL Drop Tables | |
| Usage: | |
| mysql_drop_tables.py [-y] MYSQL_URL TABLE_PATTERN ... | |
| Options: | |
| -y 直接执行,不提示用户 |
| from ast import literal_eval | |
| import urlparse | |
| def parseValue(value): | |
| try: | |
| return literal_eval(value) | |
| except: | |
| pass | |
| try: | |
| return literal_eval('"%s"' % value) |
| # -*- coding: utf-8 -*- | |
| u'''合并对象,特点: | |
| - 字典对象并操作 | |
| - 其他对象替换 | |
| 可以合并的对象包括: | |
| - 字典 | |
| - 模块 |
| # -*- coding: utf-8 -*- | |
| u'''合并字典,可用于配置信息合并 | |
| 合并的原则是后来的数据优先 | |
| ''' | |
| def mergeable(target, source): | |
| ''' | |
| >>> from collections import OrderedDict |
| # -*- coding: utf-8 -*- | |
| """判断点是否在多边形内部 | |
| 参考: https://github.com/flaviamissi/Point-Inside-Polygon | |
| """ | |
| def get_number_of_intersected_sides(self, point, polygon): | |
| crossed_by_left = 0; crossed_by_right = 0 | |
| for i in range(1, len(polygon)): | |
| if point[1] in range(polygon[i-1][1], polygon[i][1]+1) or point[1] in range(polygon[i][1], polygon[i-1][1]+1): |
| from collections import namedtuple | |
| from urllib import urlencode | |
| import os | |
| FormFile = namedtuple('FormFile', 'filename, data') | |
| def encode_form(fields, multipart=False, headers=None): | |
| headers = headers or {} |
| import os | |
| import tempfile | |
| def dir_writeable(dir): | |
| try: | |
| (fd, name) = tempfile.mkstemp(dir=dir) | |
| os.close(fd) | |
| os.unlink(name) | |
| except IOError: | |
| return False |