ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django 초간단 게시판 3. model
    Python/초간단 장고 Django 2021. 5. 27. 00:01
    반응형

    1. migrate

    먼저 DB 를 만들어 보자. 

    config/setting.py 파일에 DB 설정이 있다. 
    실습용으론 충분하니 기본값을 쓰자.

    # config/setting.py 
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }

     

    파이참의 터미널 창에서 python manage.py migrate 를 실행한다. 

    migrate 전에는 makemigrations(s에 주의)를 실행해야 하는데, 
    장고 첫 설치시 makemigrations 된 상태기 때문에 migrate를 바로 실행할 수 있다. 

    makemigrations은 모델의 변화를 migrations에 기록하고,
    migrate은 DB에 models.py의 변화를 적용해준다. 

    sqlite3 파일이 생긴다. 

     

    실습 중에는
    자주 반복하는 과정이기 때문에
    등록해두고 편하게 쓰자. 

    makemigrations 도 등록하자. 

     

    2. modes.py

    이제 본격적으로 게시판을 만들어 보자. 

    게시판이라면 주제, 저자, 내용, 게시시간, 수정시간이 필요하다.
    물론 답글, 댓글 등도 필요하지만,
    천천히 구현하도록 하자. 

    일단 모델 부터...

    # board/models.py
    
    from django.db import models
    
    
    class Article(models.Model):
        title = models.CharField(max_length=120, null=False)
        author = models.CharField(max_length=20, null=False)
        content = models.TextField(null=False)
        created_at = models.DateTimeField(auto_now_add=True)
        modified_at = models.DateTimeField(auto_now=True)
    
        def __str__(self):
            return f'{self.id} / {self.title} / {self.author}'

    Article이라는 테이블 안에
    title이라는 120글자 제한의 칼럼이 있고 ...
    이하 생략.. 

    __str__은 예전에 설명했다. 
    https://comdoc.tistory.com/entry/7-Django-ORM-Method-str

    auto_now_add, auto_now 는 구글링하자. 
    https://tomining.tistory.com/145

    설정하지 않은 self.id 는 장고가 제공해주는 것...

     

    3. makemigrations, migrate

    makemigrations, migrate를 해서 DB에 변화를 반영하자.

     

    4. admin.py

    admin 에서 이 모델을 보려면.. admin.py 파일을 수정해야 한다. 

    from django.contrib import admin
    from .models import Article
    
    admin.site.register(Article)

     

    5. create super user

    admin 에 진입하려면 create super user 를 해야한다. 

    터미널 창에서 python manage.py createsuperuser 를 실행하자. 

    아이디 패스워드 등을 입력하면 된다. 

    (venv) C:\PyProjects\djangoBBS>python manage.py createsuperuser

    http://127.0.0.1:8000/admin 에 접속하면

    이런 화면을 볼 수 있다. ADD ARTICLE 해둔 상태... 

    반응형
Designed by Tistory.