Study/Web

[Web]Django 애플리케이션 생성 및 관리자 설정

seomj 2023. 7. 3. 21:00

애플리케이션 생성

python manage.py startapp blog

blog라는 애플리케이션 생성

 

mysite\settings.py에 'blog'를 추가하여 해당 애플리케이션에 대한 내용을 등록 

 

 

블로그 글 model 생성

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

모든 Model 객체는 blog\models.py 파일에 선언하여 모델을 만든다.

 

 

데이터베이스에 모델을 위한 테이블 생성

python manage.py makemigrations blog

python manage.py migrate blog

(myvenv) PS C:\Users\XXX\djangogirls> python manage.py makemigrations blog
Migrations for 'blog':
  blog\migrations\0001_initial.py
    - Create model Post
(myvenv) PS C:\Users\XXX\djangogirls> python manage.py migrate blog       
Operations to perform:
  Apply all migrations: blog
Running migrations:
  Applying blog.0001_initial... OK

실제 데이터베이스에 모델 추가를 반영

 

 

장고 관리자

python manage.py createsuperuser

슈퍼유저 생성

(myvenv) PS C:\Users\XXX\djangogirls> python manage.py createsuperuser 
Username (leave blank to use 'XXX'): admin
Email address:
Password:
Password (again):
Superuser created successfully.

 

앞서 만든 Post 모델을 관리자 페이지에서 볼 수 있도록 blog\admin.py에 등록 

 

 

이후 서버를 실행한 뒤 접속

 

 

mysite\urls.py를 보면 admin을 통해 admin.site.urls를 실행한다

주소창에 127.0.0.1:8000/admin을 입력하면 다음과 같은 로그인 창이 뜬다.

아까 만든 슈퍼유저로 로그인을 하면 다음과 같은 관리자 페이지로 접속할 수 있다.

Post 모델도 존재하는 것을 확인할 수 있다. 

 

 

 

<출처>

https://0ver-grow.tistory.com/893

https://tutorial.djangogirls.org/ko/django_models/

https://tutorial.djangogirls.org/ko/django_admin/