django 승현님 3팀

박재용·2020년 10월 5일
0

참고-
mysql설치 - https://www.notion.so/MySQL-46cc9ec624a441998161e0be02a3dbfe

1.

client = 프론트엔드 요청
urlconf = 경로에 따라 view 에 전달 .
view = 장고 쿼리셋을 써 c,r,u,d로 모델을 건들구
model = 데이터베이스의 추가 하거나 . 하는거
database = 저장소


  1. 보통 3개를 만들어 놓고 시작 .
    1.런서버
    2.sql (db)
    3.파이썬 쉘 - 파이썬코드를 칠수있는 에디터 환경 .

  2. conda create = conda create -n "pp" python=3.8

conda activate pp #가상환경의 들어와있다 .
가상환경 = 프로젝트마다 환경이 다르니 여러환경을 쓰기위하여 씀 .

pip freeze -현재 설치되어있는 환경 .
pip install django - 장고 설치
django-admin startproject pp - 프로젝트 생성
cd pp - pp이동후


setting.py 쓰지않는 부분은 주석처리 합니다 . (안하면 에러가 떠요)

그후 mysql 연동-

와 같이 합니다 . 비밀번호가 없는경우 '' 비어둡니다 .

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '아직몰라요 .',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

와 같이 작성합니다 . 'NAME' 은아직 지정안해줬다 데이터베이스 이름을 입력하는칸 이다 .

sql 설치후 .
sql 실행 - sudo mysql -u root -p

데이터베이스 NAME을 모르니 Sql에서 다음과 같이 입력합니다 .


다음과 같이 확인을 한후 .
데이터베이스 이름을 dog라고 하였으니. 세팅의 그에 맞게 입력 하면 됩니다 .

dog의 테이블을 확인하려면 다음과 같이 쿼리를 날려줍니다 .
use dog; // dog란 데이터베이스를 사용할것이다 .
show tables // table확인 .

고다음 파이썬 쉘창으로 가서 pip install mysqlclient 장고 앱이랑 프로젝트랑 Sql연결해주는 프로그램을 설치

처음에는 마이그레이트 파일이 대기하고 있어요 .
모델은 안만들었지만 .
python manage.py migrate 를 해줍니다 .
해주면 뭐라뭐라 오류가 뜰텐데 .
아래와 같이 주석처리를 하라고 하는데 왜그런지는 모르겠습니다 .

장고 모델스파일을 고대로 지정한 지정한 데이터베이스에 집어넣는게 migrate 그걸위해 3스텝이 필요함 . 모델작성후 메이크마이그레이션 을함 모델스파이는 클래스인데 그 클래스를 Sql 쿼리문으로 바꿔주는것 .
그후 마이그레이트로 실제로 데이터베이스에 밀어 줌 .

앱을 생성하는걸 깜빡했으니 앱을 생성 .
python manage.py startapp dogs


다음과같은 모델을 만들기위해 아래와 같이 작성 .

from django.db import models


class Owner(models.Model):
    name          = models.CharField(max_length=30)
    age           = models.IntegerField()
    email         = models.EmailField(max_length=254)
    address       = models.EmailField(max_length=200)
    phone_number  = models.CharField(max_length=50)

    def __str__(self):
        return self.name

    class Meta:  #table 이름을 나타내기 위한 클래스 .
        db_table="owners"

class Dogs(models.Model):
    name    = models.CharField(max_length=30)
    breed   = models.CharField(max_length=30)
    age     = models.IntegerField()
    Color   = models.CharField(max_length=30)
    owner   = models.ForeignKey(Owner , on_delete=models.CASCADE)  #Owner 의클래스의 참조 폴인키사용 , 위에 프라이머리키인 Owner 클레스가 사라지만 같이 사라질것인지

    def __str__(self):
        return self.name

    class Meta :
        db_table="dogs"


앱을 만들었으니 사진과같이 앱이름을 추가해주고 .
makemigration을 해주면 .
앱안에 모델스에서만든 클래스들이 Sql쿼리로 바뀌어지며 .
migrate로 데이터베이스에 밀어 넣습니다 .

desc dogs

profile
박재용이란 사람이 복습을 하기위해 만든 벨로그 입니다 . 잘부탁드려요

0개의 댓글