python项目的助手实用程序

project_runp的Python项目详细描述


https://travis-ci.org/crccheck/project_runpy.svg

泛型帮助者,我希望存在,或者一直复制到我的Python项目中。

env

获取有关环境变量的信息。

.get(key, ...)

您可以使用env.get作为os.environ.get的替换项。它 行为相同,但在类型上更聪明,对环境有额外的魔力 基于设置:

from project_runpy import env

env.get('DATABASE_URL')  # get an environment variable
env.get('DATABASE_URL', 'sqlite:///:memory:')  # provide a default
env.get('DEBUG', True)  # default can be bool
env.get('WORKERS', 10)  # default can be other types too, like int
env.get('DEBUG', True, type_func=bool)  # explicitly get bool

如果指定了其他Kwarg,则它们将成为默认的if environment 匹配键:

from project_runpy import env

env.get('WORKERS', 10, DEV=1)  # if ENVIRONMENT == DEV: default = 1
env.get('DEBUG', FALSE, type_func=bool, TEST=False)  # combine it

.require(key, ...)

如果你想特别严格/谨慎,你可以提出一个例外,如果 未使用.require而不是.get设置环境变量。

演示:

>>> from project_runpy import env
>>> env.require('SHIRTSNSHOES')
ImproperlyConfigured: Environment variable not found: SHIRTSNSHOES

ColorizingStreamHandler

生成彩色控制台输出的日志处理程序

用法:

import logging

from project_runpy import ColorizingStreamHandler

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(ColorizingStreamHandler())

django:

LOGGING = {

    ...

    'handlers': {

        ...

        'console': {
            'level': 'DEBUG',
            'class': 'project_runpy.ColorizingStreamHandler',
        },
    },

    ...

}

ReadableSqlFilter

一个日志过滤器,用于使django.db.backends输出更多 在本地开发中可读。这是django调试工具栏的sql面板的替代选项。 (您也应该使用它)并为html之外的查询添加反馈。 这个将减慢开发服务器的速度,但这是一个更快的折衷方案 优化查询的反馈。

django兼容性:django>;=2.0

转弯:

(0.002) SELECT "tx_elevators_building"."id", "tx_elevators_building"."elbi",
"tx_elevators_building"."name_1", "tx_elevators_building"."name_2",
"tx_elevators_building"."address_1", "tx_elevators_building"."address_2",
"tx_elevators_building"."city", "tx_elevators_building"."zip_code",
"tx_elevators_building"."county", "tx_elevators_building"."owner",
"tx_elevators_building"."contact", "tx_elevators_building"."latitude",
"tx_elevators_building"."longitude" FROM "tx_elevators_building" LIMIT 21;
args=()

进入:

(0.002) SELECT...FROM "tx_elevators_building" LIMIT 21

当你有很多查询时,它们都会很好地排列在你的终端上。

要安装,请编辑django设置:

LOGGING = {
    ...
    'filters': {
        'readable_sql': {
            '()': 'project_runpy.ReadableSqlFilter',
        },
    },
    'loggers': {
        'django.db.backends': {
            'filters': ['readable_sql'],
            ...
        },
    },
    ...
}

关于

灵感来自dj-settings-helpersansistrm.pytornadodefine

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓为什么Java AudioEffect不支持双簧管?   增加内存后出现java IntelliJ堆大小错误   在unix/linux中工作的java中将unicode字符串转换为ASCII   java是否缺少正确对齐输出的值?   java Spring 3 MVC:动态表单中的onetomany(创建/更新时添加/删除)   java在接口中创建两个通用参数   lambda使用Java 8从嵌套列表中使用forEach查找项的替代方法是什么?   Java正则表达式匹配10位电话号码,中间有空格   linux将log4j外部化。使用命令行Java的属性文件   带有SSL的java简单RMI服务器   java无法为事务[…]打开JPA EntityManager无法获取驱动程序类“null”和URL“null”的连接   Android设备上的java Oauth Foursquare   for循环的ImageButton名称的java骰子模拟浓缩   java有没有简单的1d条形码阅读器?   如何在调用resultset后解决“无效字符串或缓冲区长度”。从java到访问mdb的getString()连接   在Java8中,是否可以使用JVM参数来控制何时(或在什么条件下)卸载类?