장고 자습서 앱 만들기 (2) [모델 DB 만들기]

앱 만들기


manage.py 파일이 있는 디렉토리에서,
$ python3 manage.py startapp blog
bin     db.sqlite3  lib     mysite
blog        include     manage.py   pyvenv.cfg

이제 새로 블로그 디렉토리를 만들었습니다.
응용 프로그램을 만든 후에는 장고에게 그것을 사용하라고 말해야합니다.mysite/settings.py 파일에 지정합니다. 먼저 INSTALLED_APPS를 찾아서 그 위에 'blog'라는 한 줄을 추가합니다.mysite/settings.py를 편집기에서 열고 'blog',를 추가합니다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]
blog/models.py 파일에서 Models라는 모든 객체를 정의합니다. 이것이 블로그 게시물을 정의하는 곳입니다.blog/models.py를 편집기에서 열고 모두 삭제하고 아래 코드를 작성합니다.

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

class Post(models.Model):
    author = models.ForeignKey('auth.User',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

models.Model는 게시물이 장고 모델이라는 것을 의미하며 장고가 데이터베이스에 저장해야한다는 것을 알고 있습니다.
필드 유형을 결정해야 합니다.
· models.CharField - 텍스트 수를 정의하는 필드
· models.TextField - 이것은 제한없는 긴 텍스트
· models.DateTimeField - 날짜와 시간 필드
· models.ForeignKey - 이것은 다른 모델에 대한 링크

데이터베이스에 모델용 테이블 만들기



새 모델을 데이터베이스에 추가합니다. 우선, 지금 작성한 모델중에 조금 변경이 있었다고 Django에 알립니다.
$ python3 manage.py makemigrations blog
Migrations for 'blog':
  blog/migrations/0001_initial.py
    - Create model Post

$ python3 manage.py migrate blog
Operations to perform:
  Apply all migrations: blog
Running migrations:
  Applying blog.0001_initial... OK

이제 포스트 모델이 데이터베이스에 들어갔다.

게시물 추가, 편집, 삭제


blog/admin.py 파일을 편집기에서 열고 다음과 같이 수정합니다.

from django.contrib import admin
from .models import Post

admin.site.register(Post)

이전에 정의한 Post 모델을 가져옵니다. admin 페이지에서 모델을 볼 수 있게 하려면 admin.site.register(Post)로 모델을 등록해야 합니다.

그런 다음 포스트 모델을 살펴 보겠습니다. 웹 서버를 실행하려면 다음 코드를 실행합니다.
$ python3 manage.py runserver

htp://127.0.0.1:8000/아d민/
이런 화면이 나올 것 같아요.


로그인하려면 superuser(사이트의 모든 것을 관리하는 사용자)를 만들어야 합니다.
일단 터미널에서 command+N 에서 다른 탭을 만들고 myvenv로 이동하고,
$ python3 manage.py createsuperuser

를 입력한 다음 사용자 이름, 이메일 주소, 비밀번호를 입력합니다.
나중에 로그인 할 때 사용하므로 알기 쉬운 것으로 해주십시오.

모두 입력하면 Superuser created successfully. 와 나옵니다.
그러면 브라우저로 돌아가 방금 만든 superuser로 로그인합니다.


이런 화면이 됩니다.

그렇다면 시험에 Posts에 가서 적당히 쓰고 저장해 봅시다.
저장할 수 있으면 성공입니다! ! !

좋은 웹페이지 즐겨찾기