본문 바로가기

IT/django(장고)

[django]장고 개발_3 - 장고 mysql 연결, 모델 생성, 장고 관리자

 

새로 cmd 창을 실행하셔서 

mysql에 들어가셔서

show databases; 로 사용할 DB가 있는지 확인해주시고 없으면 새로 만들어주셔야 돼요.

create database DB명;

 

DATABASES = { 
 'default': { 
    'ENGINE': 'django.db.backends.mysql', # mysql 엔진 설정 
    'NAME':'app', # 데이터베이스 이름 
    'USER':'root', # 데이터베이스 연결시 사용할 유저 이름 
    'PASSWORD':'1234', # 유저 패스워드 
    'HOST':'localhost', 
    'PORT':'', 
    } 
}

 

그리고 web/settings.py에서 DATABASES를 변경해주세요

 

그리고 가상 환경에서

python manage.py migrate 입력하시면 

mysqlclient가 설치되었냐고 물어볼 거예요

그럼 일단 버전이 몇인지 확인을 해봐야 돼요.

python
import platform 
print(platform.architecture());

버전을 확인했으면

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 

버전에 맞는 whl 파일을 다운 받으세요.

다운로드 받은 파일을 폴더로 옮겨주세요.

python -m pip install 다운받은 파일명

파일명 적을 땐 파일 앞에 이니셜 쓰고 TAB 눌러 주시면 저절로 입력돼요.

 

설치가 완료 됐으면 이번에는 글 모델을 만들어 볼게요.

app/models.py로 들어가시면 import 하나만 있을 거예요.

밑에 소스를 복사해서 그냥 입력해주세요

 

from django.conf import settings 
from django.db import models 
from django.utils import timezone



class Post(models.Model): 
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    created_date = models.DateTimeField( 
            default=timezone.now) 
    published_date = models.DateTimeField( 
            blank=True, null=True) 

    def publish(self): 
        self.published_date = timezone.now() 
        self.save() 

    def __str__(self): 
        return self.title

 

그리고 가상 환경에서 아래 명령어를 입력해주세요.

python manage.py makemigrations app
python manage.py migrate app

#makemigrations 명령어는 프로젝트에 설치된 모든 애플리케이션에 대한 migration들을 생성해요 
#migrate 명령어는 migration들을 실제로 데이터베이스에 적용해요(장고는 현재 데이터베이스에 어떤 것들이 추가되었는지 추적해요).

 

이제 장고 관리자를 설정해볼게요.

app/admin.py를 들어가셔서 아래 소스를 입력해주세요.

 

 

from django.contrib import admin 
from .models import Post 

admin.site.register(Post)

 

python manage.py createsuperuser

입력 후에 127.0.0.1:8000 뒤에 /admin 입력하면 관리자 로그인으로 넘어가요.

여기서 로그인을 해주시면 됩니다.

관리자 화면이 나오면 성공이에요.