인프런 파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의를 보고 정리한 내용입니다.
쉘 (Shell)이란?
코드 한 줄 입력받고 바로 실행결과 출력해주는 프로그램
python (python3)를 입력하면 나오는 파이썬 쉘은 장고 프로젝트 설정이 로딩되어 있지 않음
장고 프로젝트 설정이 로딩된 파이썬 쉘
1
2
3
4
python3 manage.py shell
#-i (--interface): 인터프리터 인터페이스 커스텀 지정
#-c (--command): 실행할 파이썬 코드를 문자열로 지정
쉘 열리는 우선순위 (ipython, bpython 등이 설치되어 있다면):
ipython쉘 , bpython쉘, python쉘
Jupyter는 ipython을 사용함
아래처럼 쉘 내에서 환경변수를 추가해주어야 장고 모델 등을 import할 수 있음
실제 장고의 환경변수를 변경하는 것은 아니고, 쉘 내에서만 변경하는 것
1
2
3
4
5
6
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'askcompany.settings'
os.environ['DJANGO_ALLOW_ASYNC_UNSAFE'] = 'true'
import django
django.setup()
Django 3부터는 비동기가 지원이되어서, 주피터에서 장고를 사용할 때 SynchronousOnlyOperation에러가 뜸
따라서 아래 코드를 추가해주어야 에러가 안 남
1
os.environ['DJANGO_ALLOW_ASYNC_UNSAFE'] = 'true'