• Django的django-admin工具详解


    django-admin是Django的一个命令行管理工具,用以对Django项目执行某些命令操作。

    1. django-admin安装

    安装Django后,默认即安装了django-admin。

    Linux系统
    默认安装在$PATH_HOME/dist-packages/django/bin/django-admin.py
    Windows系统
    默认还在$PATH_HOME/Scripts/中安装了django-admin.exe和django-admin.py


    2. 设置PATH路径加入django-admin所在位置

    Linux系统
    export PATH=$PATH;$PATH_HOME/dist-packages/django/bin/

    Windows系统
    set PATH=%PATH%;$PATH_HOME/Scripts/

    后续就可以直接在Shell中执行

    django-admin <command> [options]

    3. django-admin.py代码分析

    from django.core import management

    if __name__ == "__main__":
    management.execute_from_command_line()

    4. 常见的django-admin命令
    diffsettings
    startproject
    startapp
    runserver
    testserver
    shell
    check
    test
    5. django-admin命令的通用选项
    --pythonpath='/python/path'
    --settings=mysite.settings
    --traceback
    --verbosity {0,1,2,3}或-v {0,1,2,3}
    -v默认1
    --no-color

    6. 如果Django项目启用了django.contrib模块(默认启动),则django-admin还可以执行如下命令

    1) django.contrib.auth的命令

    createsuperuser
    changepassword
    2) django.contrib.contenttypes的命令

    remove_stale_contenttypes
    3) django.contrib.gis的命令

    ogrinspect
    4) django.contrib.sessions的命令

    clearsessions
    5) django.contrib.sitemaps的命令

    ping_google
    6) django.contrib.staticfiles的命令

    collectstatic
    findstatic
    7. 在项目代码中,也可以直接调用django-admin的命令
    调用语句:

    django.core.management.call_command(command_name, *args, **options)

    示例:


    from django.core import management
    from django.core.management.commands import loaddata

    management.call_command('flush', verbosity=0, interactive=False)
    management.call_command('flush', '--verbosity=0', interactive=False)

    management.call_command('loaddata', 'test_data', verbosity=0)
    management.call_command(loaddata.Command(), 'test_data', verbosity=0)


    补充:
    事实上,在Django项目的代码中,manage.py文件的功能类似于django-admin,此外manage.py还:
    引入sys.path到Django项目
    设置DJANGO_SETTINGS_MODULE环境变量指向Django项目中的settings.py
    manage.py源代码如下:
    #!/usr/bin/env python
    import os
    import sys

    if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjangolists.settings")
    try:
    from django.core.management import execute_from_command_line
    except ImportError:
    # The above import may fail for some other reason. Ensure that the
    # issue is really that Django is missing to avoid masking other
    # exceptions on Python 2.
    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(sys.argv)

    如果没有对Django进行任何设置,在执行django-admin命令时往往有警告,如下图所示:


    而执行python3 manage.py则会自动应用所在项目的主模块中的settings.py,如下图所示:


    因此建议使用python3 manage.py ...替代django-admin ...
    事实上,如下命令是等价的:
    django-admin <command> [options]
    python3 manage.py <command> [options]
    python3 -m django <command> [options]

  • 相关阅读:
    MVC基础
    图片水印和图片验证码
    Jquery弹窗
    AJAX基础
    Jquery--动画
    Jquery--动画
    JQuery
    LinkQ 组合查询与分页
    LinQ的简单使用
    JavaScript复习
  • 原文地址:https://www.cnblogs.com/fan-1994716/p/14812032.html
Copyright © 2020-2023  润新知