python -m venv venv
.\venv\Scripts\activate
pip install –upgrade pip(만약 장고에서 버전 오류가 나면 python.exe -m
pip install --upgrade pip)
pip install Django
django-admin startproject config .
django-admin startapp posts
config > settings.py > installed_apps > posts 추가
models.py 에 모델을 생성
인스타 게시글을 만들기 때문에 먼저 이미지라는 변수명에는 imagefield
텍스트에는 내용이 긴 텍스트도 포함하기 위해 textfield
작성일을 사용하기 위해 시간과 날짜에 사용하는 datetimefield
마지막으로 조회수도 포함하기 위해 정수형을 인식하는 integerfield 를 사용한다.
이렇게만 만들어도 생성은 되지만 각 필드에 대한 사용자의 이름을
지정합니다.
python manage.py makemigrations
pillow 오류는 이미지를 사용하는데 꼭 필요한 패키지기 때문에 설치가 필요함.
python -m pip install Pillow
다시 python manage.py makemigrations 실행
테이블이 생성 되었고 우리가 만들지 않은 id 값은 bigautofield 라고 되어 있지만 장고를 실행하면 integerfield 로 들어간다.
primary key는 기본키이고 꼭 필요함
python manage.py migrate
테이블이 많이 생긴 이유는 장고에서는 기본적으로 인증시스템과 유저모델도 만들어 주기 때문에 그 테이블이 다 생긴 것
#0001 intial.py
데이터베이스가 생성되었고 이 파일을 기준으로 생긴거기 때문에 나중에
마이그레이션이 꼬이면 직접 수정이 필요할 수도 있습니다.
장고에서 기본적으로 만들어지는 사용자 데이터를 생성 할 것입니다.
python manage.py createsuperuser
실행하면 username 은 admin
email 은 엔터로 건너뛰고
password 12 로 설정하고 엔터(password 는 노출 문제로 따로 표시가 안됨)
password 확인도 12
보안적으로 챙겨주는 것이 있는데 저희는 테스트 할려고 하는거기 때문에 건너뜀.
이 데이터를 보기 위해서는 별도 외부프로그램을 추후에 쓸거지만 지금은 확장프로그램으로 진행함.
확장 > sqlite > 설치
db_sqlite3 > 마우스 오른쪽 클릭 > open database
auth_user 클릭하면 사용자 테이블이 나오는데 이것은 우리가 만든 사용자 데이터입니다.
보기 > 명령 팔레트 > 파이썬 인터프리터 > venv 지정
댓글도 게시글과 동일하게 내용과 작성일을 작성하고 게시글이랑 관계를 구성해야 되기 대문에 post 변수명 지정후 ForignKey 를 사용한다.
ForignKey 는 테이블의 필드 중에서 다른 테이블의 행과 식별할 수 있는 키(즉 게시글과 연결하기 위해 필요함)
post 에서 ‘Post’를 입력해주고 on_delete 는 게시글이 삭제되었을 때 같이 삭제되기 위해서 써준다.
사용자 연결은 writer 로 변수 지정하고 to=에는 사용자 모델을 넣어야 되는데 장고 유저 모델을 생성하고 함수를 만들어 줍니다
나중에가면 유저모델을 새로 커스텀을 하는데 그때도 이 코드를 그대로 사용할 것.
writer to=’User’을 넣어줍니다.
이미지 같은 경우는 경로 같은 것을 설정해줘야되는데 추후에 진행할 예정이고 지금은 null 과 blank 를 넣어줍니다.
auto_now_add 는 생성이 되면 자동으로 입력해주는 속성도 넣어주고 조회수는 따로 속성을 안줘도 되기 때문에 기본값으로 지정해준다.
게시글 작성자가 들어가야 되기 때문에 writer 를 생성해줍니다
작성자 같은 경우도 실습할 때 번거러워 질 수 있기 때문에 null 과 blank 를 넣어줍니다.
다시 python manage.py makemigrations 실행
python manage.py migrate
실행한 후 sqlite explorer 우측 상단에 새로고침 해줘야됨.
사용자도 일대 다인데 사용자가 1 post 가 다 댓글에서도 게시글이 1 comment 가 다이다.
모델을 참고하는데 ForignKey 를 사용할때는 User 와 on_delete 는 필수로 들어가야 한다.