仿朋友圈网站建设,恩施建站建设,查看网站开发,全球最大设计网站Django自定义命令
我们知道#xff0c;Django内部内置了很多命令#xff0c;例如
python manage.py runserver
python manage.py makemigrations
python manage.py migrate我们可以在python控制台中查看所有命令
我们也可以自定义命令#xff0c;让python manage.py执行…Django自定义命令
我们知道Django内部内置了很多命令例如
python manage.py runserver
python manage.py makemigrations
python manage.py migrate我们可以在python控制台中查看所有命令
我们也可以自定义命令让python manage.py执行
在已注册的app中创建指定的文件夹management和二级文件夹commands(文件夹名称固定)在文件夹commands中创建文件wilson.py命令就为python manage.py wilson
在wilson.py文件中我们需要写一个Command类继承BaseCommand并重写handle()方法
当我们执行python manage.py wilson时具体的操作就在handle()方法中
from django.core.management.base import BaseCommandclass Command(BaseCommand):def handle(self, *args, **options):print(wilson)在其父类BaseCommand中有一个add_arguments方法可以支持我们解析命令后的参数字典形式
from django.core.management.base import BaseCommandclass Command(BaseCommand):def handle(self, *args, **options):print(wilson, options)def add_arguments(self, parser):parser.add_argument(v1)parser.add_argument(v2)关于python manage.py createsuperuser命令
在django中的auth-app中有一个createsupersuer.py文件 在其初始化方法中执行函数get_user_model()本质上是去寻找指定的model类读取配置文件中的AUTH_USER_MODEL auth.User也就是auth中的User表 然后去寻找USERNAME_FIELD字段也就是配置文件中定义的username
在其handle()函数中主要执行提示信息和接受我们输入的用户名密码邮箱 在其最后执行了
self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)本质上就是执行了内部的自定义命令create_superuser来创建超级用户
User.objects.create_superuser(**user_data)注其中db_manager(database)用来选择数据库默认是default