TIL django 초기 환경세팅+가상환경 관련 오류

0

TIL

목록 보기
14/29
post-thumbnail

django로 초기 개발을 진행할 때 필요한 세팅을 진행하는 과정에서 오류 사항을 정리

command not found pip

가상환경 생성

conda crate -n 이름
가상환경을 생성하고 나서 pip를 진행을 했는데 위와 같은 오류가 나왔다. 이 오류는 pip를 찾지 못해서 벌어진 이유인데 원인은

  • pip가 설치가 안되어있다 ( pip설치 진행)
  • 컴퓨터가 pip를 인식하지 못한다.

나의 경우에는 2번에 해당된다. 오류가 난 이유는 가상환경을 만들 때 파이썬을 지정해주지 않아서다.

conda crate -n 이름 이렇게 입력을 했는데 뒤에 파이썬을 적어주지 않아서 pip가 잘 설치 되었음에도 인식이 되지 않았다.
conda crate -n 이름 python=3.7 이렇게 파이썬과 버전을 명시해주어야 한다.
(+ python = 3.7(x)/ python=3.7(o) 파이썬과 버전 사이에 space 조심)

TypeError:gerattr(): attribute name must be string

장고 model convention

이 문제는 model에 클래스로 만드는 과정에서 발생했는데 각 컬럼의 데이터타입을 지정해줄 때 정해진 컨벤션을 따르지 않아서 발생했다.

Aquery에 미리 만들어 놓은 ERD를 보면서 만들다보니 위와 같이 바로 VARCHAR(45)를 그대로 바꾸다보니 models.CharFiedl(45)로 바로 타이핑을 했다.


위와 같이 models.CharFiedl(max_length=45)이렇게 정확히 필요한 인수를 다 넣어줘야 한다.

관련해 인수별 필요 파라미터는 여기서 확인이 가능하다.

you are trying to add a non-nullable field '~' to table without a default

default 값이 필요한 사항에 지정하지 않은 경우

이 문제같은 경우 확실한 해결방법은 모르겠다. 우선은 default value를 지정하지 않아서 발생한 문제라 생각을 해서 1번을 고르고 default value에 0을 지정해주니 문제는 해결이 됐는데 왜 이 오류가 발생을 했는지 확인할 필요가 있다.


멘토님께 질문을 해서 확인해본 결과 기존 데이터베이스에 새로운 컬럼을 추가하는 과정에서( 새 데이터베이스로 덮어쓰는 과정) 데이터가 없는데 컬럼만 추가된 개념이라서 데이터 베이스 입장에서는 어떤 값을 넣어야 하는지 몰라서 발생하는 에러라고 한다.

그래서 default 값을 설정해주면 덮어쓰더라도 문제없이 데이터 베이스를 생성할 수 있다고 한다.

No module named 'django'

ipython을 통해서 import 할 시 발생

장고 서버를 다 연결을 하고 ipython을 통해서 코드를 입력을 할 때 발생한 에러다. 사실 No module named django 의 원인은 여러가지가 있을 수 있다.

  • django가 적절히 설치가 안되었다. ( 가상환경을 새로 만들 때 마다 다시 설치해야 한다)
  • shell 에서 django를 입력할 수 있도록 설정하지 않았다.

이번 오류는 2번의 경우였다. 기존에 ipython에서 코드를 입력하기 전에 python manage.py shell을 해줘서 shell에서 장고를 인식할 수 있도록 해줘야 하는데 미리 입력을 하지 않아서 발생한 문제였다.

profile
기록을 통해 한 걸음씩 성장ing!

0개의 댓글