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
我们在上线上面的时候,需要初始化一些数据进数据库,现在我们来写这么一个命令
```
评论