Django에서 모델 만들기 - 초보자를 위한 자습서

안녕하세요 코더 여러분,

이 문서는 처음부터 새 앱을 코딩하고 대부분 터미널을 사용하여 초보자가 프레임워크Create a Model in Django 방법을 이해하도록 돕는 것을 목표로 합니다. 샘플 소스 코드는 Github(MIT License)에서 다운로드하여 취미 및 상용 제품으로 확장할 수 있습니다. 초보자를 위해 Django는 숙련된 개발자가 구축한 고급 Python 웹 프레임워크로 신속한 개발과 깨끗하고 실용적인 디자인을 장려합니다.

Thanks for reading! - Content provided by App Generator.





  • Create Model in Django - 소스 코드(Github/MIT 라이선스)
  • 기타Django Samples 인증, 기본 모듈 제공



  • 장고를 코딩하자



    Check Python Version - recommended version is Python3



    $ python --version
    Python 3.8.4        <-- All good, we have a 3.x version
    


    Create/activate a virtual environment - Unix-based system



    $ virtualenv env
    $ source env/bin/activate  
    


    Windows의 경우 구문이 약간 다릅니다.

    $ virtualenv env
    $ .\env\Scripts\activate
    


    Install Django



    $ pip install django
    


    Create a new Django Project



    $ mkdir django-create-model
    $ cd django-create-model
    


    새 디렉토리 내에서 startproject 하위 명령을 호출합니다.

    $ django-admin startproject config .
    


    참고: 명령 끝에 있는 .를 고려하십시오.

    Setup the database



    $ python manage.py makemigrations
    $ python manage.py migrate
    


    Start the app



    $ python manage.py runserver 
    $
    $ # Access the web app in browser: http://127.0.0.1:8000/
    


    이 시점에서 브라우저에 기본 Django 페이지가 표시되어야 합니다.



    Create a new Django application



    $ python manage.py startapp sample
    



    기본 SQL 설정 시각화 - config/settings.py
    # File: config/settings.py (partial content)
    ...
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    ...
    


    Books 애플리케이션에서 새 모델sample을 정의합니다. 아래 변경 사항이 sample/models.py에 추가되어야 합니다.

    # File: sample/models.py
    
    from django.db import models                       
    
    class Book(models.Model):                                 # <- NEW
        title            = models.CharField(max_length=100)   # <- NEW 
        author           = models.CharField(max_length=100)   # <- NEW
        publication_date = models.DateField()                 # <- NEW 
    



    새 모델을 사용하도록 프로젝트 구성 업데이트 - sample 애플리케이션을 INSTALLED_APPS 섹션의 프로젝트 구성에 추가해야 합니다.

    # File: config/settings.py (partial content)
    ...
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'sample'                        # <- NEW 
    ]
    ...
    


    팁 - 최신 변경 사항을 빠르게 확인하려면 check 하위 명령을 실행할 수 있습니다.

    $ python manage.py check
    System check identified no issues (0 silenced).  
    



    Generate the SQL code



    $ python manage.py makemigrations  # generate the SQL code
    Migrations for 'sample':
      sample\migrations\0001_initial.py
        - Create model Book
    


    Apply changes on database



    $ python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sample, sessions
    Running migrations:
      Applying sample.0001_initial... OK
    



    CLI를 통해 모델 사용

    모델이 생성되면 Django 셸을 통해 모델을 사용할 수 있습니다.

    $ python manage.py shell
    >>> 
    >>> from sample.models import Book     # import the Book model in our context
    >>> from django.utils import timezone  # used to provide the value for publication_date
    >>>
    >>> book1 = Book(title='The Adventures of Tom Sawyer', author='Mark Twain', publication_date=timezone.now() )
    >>> book1.save()                       # save the new book
    


    모든 책 나열(CLI 사용)

    $ python manage.py shell
    >>> 
    >>> from sample.models import Book
    >>> Book.objects.all()
    <QuerySet [<Book: Book object (1)>]>
    


    쿼리에 의해 반환된 새 책을 볼 수 있습니다. 개체를 설명하는 정보를 개선합시다.


    Django 모델 - 개체의 텍스트 표현 추가

    이 목표를 달성하려면 __str__() 모델에 대한 Book 방법을 정의해야 합니다.

    # File: sample/models.py
    
    from django.db import models                       
    
    class Book(models.Model): 
        title            = models.CharField(max_length=100) 
        author           = models.CharField(max_length=100)
        publication_date = models.DateField() 
    
        def __str__(self):       # <- NEW
            return self.title    # <- NEW
    


    Django 콘솔을 다시 시작하고 결과를 확인하겠습니다.

    $ python manage.py shell
    >>> 
    >>> from sample.models import Book
    >>> Book.objects.all()
    <QuerySet [<Book: The Adventures of Tom Sawyer>]>
    



    관리 섹션을 통해 모델 사용

    Django에는 프로젝트에 정의된 모든 모델을 쉽게 관리할 수 있는 최신 섹션admin이 함께 제공됩니다.
    관리 콘솔에서 Book 모델을 관리하려면 superuser(관리자라고도 함)를 만들고 register 이후에 Book 모델을 관리 섹션에 표시해야 합니다.

    Create the superuser



    $ python manage.py createsuperuser
    sername (leave blank to use 'sm0ke'): admin
    Email address: [email protected]
    Password: 
    Password (again):
    Superuser created successfully.
    



    Register Book model to be visible in the admin section - Edit sample/admin.py as below:



    # File: sample/admin.py
    
    from django.contrib import admin
    
    from .models import Book        # <- NEW
    
    admin.site.register(Book)       # <- NEW
    



    Authenticate as admin - http://localhost:8000/admin/



    이 시점에서 UI에 Books 모델이 표시되고 CRUD 작업을 실행할 수 있어야 합니다.




    Django 모델 만들기 - 모델 항목 나열




    Django 모델 만들기 - 레코드 편집




    Thanks for reading! Feel free to AMA in the comments section.




    더 많은 Django 리소스


  • Django에 대해 자세히 알아보기(공식 문서)
  • 개발 준비를 사용하여 새 프로젝트를 빠르게 시작합니다Django Starters.
  • 좋은 웹페이지 즐겨찾기