2015-07-02 3 views
0

В чем основное отличие между django.admin и manage.py?Понимание различия между django-admin runningerver и mange.py runningerver

Кроме того, чем смысл фразы «manage.py действует как„тонкая оболочка вокруг django.py“?

+0

Если кто-то работает, а другой нет, зачем вы хотите использовать тот, который этого не делает? –

+0

Я хотел знать причину. –

+0

Эй, Akansha - так на основе документации, manage.py - это тонкая оболочка вокруг django-admin.py. Я никогда не работал с обертками раньше, но, основываясь на своем понимании с ними, программисты склонны писать обертки для «устаревшего программного обеспечения» [и некоторых других случаев использования, с которыми я не знаком]. Эти оболочки позволяют программистам использовать «устаревшую библиотеку», которая иначе не могла бы использоваться. Я думаю, вопрос, который вы должны задать, - это разница между manage.py и django-admin.py. Почему один должен использовать другой, я не думаю, что прочитал это в документации на самом деле. Надеюсь, что проливает свет. – macmania314

ответ

0

здесь документация документ, который описывает разницу между Джанго-администратора и управления .py:..

django-admin.py это утилита командной строки в Django для решения административных задач в этом документе описываются все это может сделать

Кроме того, manage.py автоматически создается в каждом проекте Django . manage.py - это th в обертку вокруг django-admin.py, которая принимает заботу о двух вещах для вас, прежде чем делегируя django-admin.py:

  • Это помещает пакет вашего проекта на sys.path.
  • Он устанавливает переменную среды DJANGO_SETTINGS_MODULE, чтобы она указывала на файл settings.py вашего проекта.

Вот еще документация, описывающая разницу: https://django.readthedocs.org/en/1.4/ref/django-admin.html https://docs.djangoproject.com/en/1.8/ref/django-admin/

Чтобы добавить то, что я сказал на приведенных выше замечаниях - manage.py необходим, потому что каждое имя приложения будет отличаться, и вы должны указать настройки вашего приложения для успешного запуска приложения django. Там действительно нет никакой разницы между Джанго-администратором и manage.py кроме этой одной линии

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "[App name].settings") 

все, что вы печатаете после manage.py, django-admin.py берет на себя, как показано:

from django.core.management import execute_from_command_line 

execute_from_command_line(sys.argv) 

Иногда это помогает просто взглянуть на исходный код, чтобы узнать, что происходит, если документация не помогает.

Смежные вопросы