十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在Django开发过程中我们都用过django-admin.py和manage.py命令。
创新互联公司主营昌图网站建设的网络公司,主营网站建设方案,app开发定制,昌图h5重庆小程序开发公司搭建,昌图网站营销推广欢迎昌图等地区企业咨询django-admin.py是一个命令行工具,可以执行一些管理任务,比如创建Django项目。而manage.py是在创建每个Django project时自动添加在项目目录下的,只是对manage.py的一个简单包装,其功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTINGS_MODULE环境变量为当前project的setting.py文件。
Django 对于命令的添加有自己的一套规范,我们可以为每个app 指定命令。简单来书就是我们在使用manage.py文件执行命令的时候,可以自定制自己的命令,来实现命令的扩充。
对于自定义Command我们从两方面介绍一是内部执行原理,二是如何实行自定义Command
一、内部原理实现
django-admin.py调用django.core.management来执行命令:
创建django项目会自动生成manage.py文件:
import os import sys def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gaoyou.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: 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?" ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main()