跟老刘学python

新猿教育老刘带你学习python,学完即可就业。

0基础python教程 django的manage命令介绍

学习python中django框架的小伙伴一定不能错过本章节,一定要认真学习manage命令的运用介绍。

1 django的manage命令介绍

>
>
>我们在迁移数据库时会执行两条命令
>
>python3 manage.py makemigrations
>
>python3 manage.py migrate
>
>那我们可不可以自定制一个命令呢?当然是可以的

## 2 如何django的manage命令

> 我们可以参考内置app:auth的createsuperuser命令
>
> 需要在app路径下新建management包
>
> 在management包下新建commands包
>
> 在commands包新建py文件

![image-20210428160501402](/Users/liuqingzheng/Library/Application%20Support/typora-user-images/image-20210428160501402.png)

## 3 操作步骤

```python
# 1 新建项目 django_manage,新建app,名叫app01
# 2 在app01下新建需要在app路径下新建management包
# 3 在management包下新建commands包
# 4 在commands包新建py文件
# 5 新建hello_world.py,内容如下
```

```python
from django.core.management.base import BaseCommand


class Command(BaseCommand):
    help = '''
    这是自定义helloworld命令帮助信息
    使用方式为
        关键字参数方案:
        python3 manage.py hello_world --name=lqz --age=19
        python3 manage.py hello_world --name=lqz --age=19
        位置参数方案:
        python3 manage.py hello_world lqz 19
    '''
        # 接收参数
    def add_arguments(self, parser):
        # 关键字参数方案
        parser.add_argument('--name',help='这里输入名字')
        parser.add_argument('--age',help='这里输入年龄')
        # 位置参数方案
        # parser.add_argument('name')
        # parser.add_argument('age')
        
        # 核心函数,具体的逻辑写在这
    def handle(self, *args, **options):
        # 1 取出带在命令行后的参数
        input_name=options['name']
        print(input_name)

        #2 让用户在控制台输入
        name = input('输入你的狗名字:')
        if name.startswith('sb'):
            raise Exception('名字不能以sb开头')
        else:
            self.stdout.write('hello world:%s' % name)
            # print('hello world:%s'%name)

```

>在控制台输入:即可使用
>
>python3 manage.py hello_world --name=lqz --age=19

## 4 初始化数据命令案例

```python
我们在上线上面的时候,需要初始化一些数据进数据库,现在我们来写这么一个命令

```

评论