Django #1

seoxuni·2023년 3월 21일
0

2023년 군 장병 대상 AIㆍSW 인재양성 사업
구름 SW개발 중급과정(PY) Django 실습 정리

가상환경 세팅하기

$ mkdir webserver && cd webserver
$ python -m venv .venv	# venv 생성
$ source .venv/bin/activate	# venv 활성화 (비활성화는 deactivate)

Django 기본 구성

$ pip install django
$ django-admin startproject webserver	# django 프로젝트 생성
$ python manage.py startapp posts # 'posts' 앱 생성

Django 모델링 구성

# settings.py
INSTALLED_APPS = [
	...
    'posts',	# 'posts'라는 앱을 생성했다고 선언
]
# models.py
class Post(models.Model):
    title = models.CharField(max_length=200)	# 제목 최대 200자 제한
    content = models.TextField()
    view_count = models.IntegerField(default=0)	# 방문자수 기본값 0 설정

    created_at = models.DateTimeField(auto_now_add=True)	# 글 작성 시 시간 기록
    updated_at = models.DateTimeField(auto_now=True)	# 글 수정 시 시간 기록
$ python manage.py makemigrations	# 주문서 생성 (0001_initial.py)
$ python manage.py migrate	# 주문서 확인 후 주문
$ python manage.py shell	# ORM 테스트를 위해 쉘 접속

> from posts.models import Post	# 모듈 호출
> Post.objects.create(title="first title", content="first content")	# Post Table에 객체 생성
> Post.objects.all()	# Post Table에 있는 객체 불러오기
> post = Post.objects.get(id=1)	# post에 객체 정보 저장
> post.title	# 객체 제목 출력

서버 오픈 & 관리자 페이지 접속

$ python manage.py migrate && python manage.py runserver 0.0.0.0:80
  • localhost 접속 시 Django 기본 페이지가 출력됨
  • 뒤에 /admin 붙여서 접속 시 관리자 페이지로 접속됨

관리자 페이지 계정 생성

$ python manage.py createsuperuser

관리자 페이지에서 Post 앱 관리하기

# admin.py
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = (
        'id',
        'title',
        'view_count',
        'created_at',
        'updated_at'
    )
    search_fields = (   # 검색이 가능한 컬럼 설정
        'title',
    )

profile
GNU CS 21 | Navy CERT 21th

0개의 댓글