/ PYTHON

Python(3) - PostgreSQL 연결

Python 관련 포스팅

1. 선행 작업

  • django 설치 $ python -m pip install Django
  • 현재 directory에 project 만들기
    $ django-admin startproject [project 이름]
  • project파일 위치로 이동해 app 만들기
    $ cd [project 이름]
    $ django-admin startapp [app 이름]
  • server 실행
    $ python manage.py runserver
  • pgAdmin 4 다운로드
    https://www.pgadmin.org/download/

2. pgAdmin 4 실행

  • Servers - PostgreSQL - Databases 우클릭 - Create - Database... 선택
  • Database 이름 기입 후, Save

3. Database 설정

  • [app]/settings.py 수정
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.postgresql',
              'NAME': 'testdb', # db 이름 설정
              'USER': 'postgres',
              'PASSWORD': '1234', # 비밀번호 설정
              'HOST': 'localhost', # 127.0.0.1 도 가능
              'PORT': '5432',
          }
      }
    
    • ENGINE: 자신이 사용할 db 엔진
    • NAME: db 이름
    • HOST: db host
    • PORT: db 실행할 포트(기본값 5432)
      INSTALLED_APPS = [
          'myapp', # app 등록 
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
      ]
    
    • 만든 app을 INSTALLED_APPS에 추가

4. Table 만들기

  • [app]/model.py
      from django.db import models
    
      class Question(models.Model):
          question_text = models.CharField(max_length=200)
          pub_date = models.DateTimeField('date published')
    
      class Choice(models.Model):
          question = models.ForeignKey(Question, on_delete=models.CASCADE)
          choice_text = models.CharField(max_length=200)
          votes = models.IntegerField(default=0)
    

5. DB연결 및 table 생성

  • psycopg2 설치: Django와 PostgreSQL을 연결
    $ pip install psycopg2
  • migrations 폴더 생성: model이 신규로 생성 또는 변경될 시 실행
    $ python manage.py makemigrations
  • model class로부터 table 생성 및 수정 실행, 실제 migration을 DB에 적용
    $ python manage.py migrate