使用click包装django的启动程序

本文介绍了opvis项目的主控程序结构与启动流程,通过使用click库定义命令行接口,实现了web子系统的manager命令,该命令可以启动一个基于Django框架的默认manager程序。
"""
opvis主控程序
====

- web
  - manager    Django默认的manager程序

"""
import os
import sys

import click



@click.group()
def opviscore():
    pass


@opviscore.group()
def web():
    pass


@web.command(context_settings=dict(
    ignore_unknown_options=True,
))
@click.argument("argv", nargs=-1)
def manager(argv):
    argv = ["opvis-web-manager"] + list(argv)
    # #################################################################################
    # Take from django's default manager.py
    # #################################################################################
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "opviscore.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(argv)
    # #################################################################################
    # Take from django's default manager.py
    # #################################################################################

if __name__ == '__main__':
    opviscore()

转载于:https://my.oschina.net/DOITBETTER/blog/740482

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值