django의 manage.py shell 명령으로 가져 오는 방법은 어떻게 되나요?

StackOverflow https://stackoverflow.com/questions/1836361

  •  11-09-2019
  •  | 
  •  

문제

Django 프로젝트에서 Manage.py Shell을 실행할 때 쉘의 시작 부분에서 항상 실행하고 싶은 일반적인 가져 오기가 있습니다 (예 : 항상 모델 파일을 가져오고 싶습니다) 쉘 명령을 실행할 때마다 자동으로 실행합니까?

두 번째 관련 질문, UP 화살표를 쳤을 때 Manage.py Shell (및 일반 Python Shell)에서 이전에 실행되는 명령 대신 "^a"문자를 얻습니다. 이전 명령을로드하여 어떻게 수정 할 수 있습니까? Linux/Unix 명령 줄에서처럼?

도움이 되었습니까?

해결책

첫 번째 질문은 manage.py shell_plus command provided by the Django-Extensions 프로젝트. 쉘 시작에 모든 모델 파일을로드합니다. 이 프로젝트는 다른 유용한 트릭도 많이 가지고 있으므로 확인할 가치가 있습니다.

두 번째 질문은 설치하면됩니다. readline.

다른 팁

당신은 무엇을 복제 할 수 있습니다

python manage.py shell

그냥 할 때 :

from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)

그리고 당신은 그 대본의 나머지 부분에 대해 환경을 모두 설정하게 할 것입니다. 여기서도 이것을하는 다른 방법이 있습니다. http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

두 가지 문제를 모두 해결할 수있는 한 가지는 IPYTHON. Ipython은 이전 처형을 저장하며 완료를 제공 할 수 있습니다.

자주 사용되는 패키지를 자동으로 가져옵니다 python manage.py shell_plus

예시:

#  local_settings
SHELL_PLUS_PRE_IMPORTS = (
    ('<app_name>.models', '*'),
    ('<app_name>.forms', '*'),
    ('<app_name>.views', '*'),
    ('django.core.urlresolvers', '*'),
    ('django.db', 'connection'),
    ('django.db', 'reset_queries'),
)

SHELL_PLUS_DONT_LOAD = ['<app_name>', '<app_name>']

참조:
https://github.com/django-extensions/django-extensions/blob/master/docs/shell_plus.rst

Django 쉘에 추가 물건을 추가하는 것은 Shell_Plus 명령이 django-extesions 앱 및 'imported_objects'사전에 사용할 수 있도록 원하는 것을 추가하여 수정하십시오.

예 : shell_plus.py 파일을 복제하고 끝에이 두 줄을 추가하면 :

# .......
alist = range(1000)
imported_objects['alist'] = alist
code.interact(local=imported_objects)  # <-- this is the original final line

새 파일을 사용하여 쉘을 실행하면 'Alist'참조를 사용할 수 있습니다. 여기에 더 긴 예를 넣었습니다. http://www.michelepasin.org/techblog/?p=1012

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top