django 프로젝트 공유하기

eunji hwang·2020년 7월 6일
0

BACKEND-PYTHON-DJANGO

목록 보기
28/28

django 프로젝트 공유하기

프론트엔드 포트폴리오를 정리하려 보니, 서버가 없어서 페이지가 정상작동되지 않았다. 오랜만에 팀원에게 연락해서 도움을 받았다.

  1. 동일 가상환경 생성
  2. 프로젝트 다운로드 : 깃헙 클론받기
  3. pip install -r requirements.txt 의존 패키지 다운로드
  4. my_setting.py 에 DB정보, 등 비밀스런 내용 넣기
  5. runserver : 서버 실행하기!

1. 가상환경 만들기

저는 미니콘다를 사용해서 가상환경을 만들겠어요. 프로젝트에서 사용한 가상환경과 동일하게 생성하면 되겠죠?

conda create -n '가상환경이름' python=버전

2. 깃헙 클론

git clone [깃헙주소]

콘솔 창에서 프로젝트를 다운받을 폴더로 이동한 뒤 클론을 해주었다.

3. 패키지 다운로드

프로젝트를 진행하며 pip를 통해 패키지를 다운받았다. pip freeze 명령어를 통해 의존 패키지를 확인 할 수 있는데, 이를 requirements.txt 파일에 패키지 목록을 작성하여 공유, 의존성패키지를 한번에 설치할 수 있도록 한다.

pip install -r requirements.txt

아래와 같이 프로젝트에 사용된 패키지가 설치되었다!

4. my_settings.py

.gitignore 에 my_settings.py 꼭 추가 기입하기!

장고프로젝트를 진행하면 기본 settings.py 에 중요 비밀정보를 입력하지 않고, 중요 비밀정보를 담을 파일을 따로 생성한다. 내가 진행하는 프로젝트는 ./config/my_settings.py 에 작성하도록 하겠다.

SECRET_KEY = {
    'secret': '시크릿키',
}  # 변수로 해도 되고 딕셔너리로 해도됨.

ALGORITHM = '알고리즘'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB이름',
        'USER': '유저이름',
        'PASSWORD': '비밀번호',
        'HOST': 'DB호스트주소', # AWS 호스트 주소 같은
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
        }
    }
}

  • DB 정보
  • 시크릿키
  • 알고리즘
  • 외부 API(SNS 로그인 , AWS 접속용 정보 등)
  • 등등..

5. runserver

서버를 실행해보자.

$ python manage.py runserver

그리고 프론트엔드 서버도 실행하여 프로젝트를 마무리해보자아~


에러 해결하기

migrations 참조 에러발생

raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError:
Migration account.0009_remove_user_google_id dependencies
reference nonexistent parent node ('account', '0008_user_google_id')

account 앱에서 migrate 할때 0008_user_google_id.py파일이 존재하지 않아 에러가 발생했다.
/account/migrations/0009_remove_user_google_id.py 를 확인해보니

# 0009_remove_user_google_id.py
from django.db import migrations

class Migration(migrations.Migration):
    dependencies = [
        ('account', '0008_user_google_id.py'), # 여기서 에러발생
    ]
    operations = [
        migrations.RemoveField(
            model_name='user',
            name='google_id',
        ),
    ]

dependencies를 수정해 주어야 한다. 현재 account/migrations 폴더를 보니 파일이 0009를 제외하곤 0001밖에 없어. 0001_inital.py을 대체하여 작성하였다.

from django.db import migrations

class Migration(migrations.Migration):
    dependencies = [
      # ('account', '0008_user_google_id.py') # 이상태에서 아래줄같이 수정
        ('account', '0001_initial.py'), # 여기 수정
    ]
    operations = [
        migrations.RemoveField(
            model_name='user',
            name='google_id',
        ),
    ]

mysqlclient 설치했니? 에러

mysqlclient 설치를 해도 해도 뜨는 ... Did you install mysqlclient? 에러를 해결해보자..

먼저

  • brew install mysql 이미되어있어 간만에 brew upgrade mysql해주었다.
  • brew install openssl openssl 설치
  • 에러나는 프로젝트로 경로를 이동한 뒤 LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient pip로 설치한다.

mysqlclient 설치했니 에러 해결!

requests 모듈 찾을 수 없음

  • pip install requests 시도한뒤 안되면
  • pip3 install requests 시도해보기

나는 pip3로 설치하니 해결되었다.

이제 겨우 서버가 실행되었다고 한다......

profile
TIL 기록 블로그 :: 문제가 있는 글엔 댓글 부탁드려요!

1개의 댓글

comment-user-thumbnail
2023년 2월 10일

감사합니다!

답글 달기