Django / 설정,실행하기,모델(데이터베이스 테이블) 생성
Web/Django

Django / 설정,실행하기,모델(데이터베이스 테이블) 생성

뉴비뉴 2019. 6. 28.

1. C:\djangogirls\myvenv\Scripts\activate

 

2. django-admin startproject mysite .[경로] # 프로젝트 생성

 

-manage.py

  • 스크립트인데 사이트 관리를 도와주는 역할을 한다. 이 스크립트로 다른 설치 작업 없이, 컴퓨터에서 웹 서버를 시작할 수 있다.

-settings.py

  • TIME_ZONE = 'Asia/Seoul' 로 변경
  • STATIC_URL 아래에다가 STATIC_ROOT = os.path.join(BASE_DIR, 'static') 추가
  • DEBUG = Ture 오류가 발생하면 오류내용을 보여준다. 실제 서비스 할 때는 False로 해주어야 한다.
  • ALLOWED_HOSTS = ['*'] 모든 주소에 대해서 허가하겠다.
  • DATABASES: sqlite3 덕분에 DB와 연결할 수 있는데 개발용이기 때문에 실제 운용 시에는 적절치않다.
  • LANGUAGE_CODE = 'ko-kr'

3. python manage.py migrate # DB에 어떤식으로 데이터를 저장하겠다라는 설정이 되어 있다.

 

4. python manage.py runserver

 

5. http://127.0.0.1:8000/

[!] UnicodeDecodeError 오류 발생 시 python manage.py runserver 0.0.0.0:8000

 


모델(데이터베이스 테이블) 생성

 

1. python manage.py startapp blog

 

2. mysite/settings.py INSTALLED_APPS 아래에 'blog', 추가

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

3. blog/models.py 

from django.db import models
from django.utils import timezone # django
# 2줄 이상 띄워주는게 좋다

class Post(models.Model): # Post 모델의 이름, models는 Post가 장고 모델임을 의미
    author = models.ForeignKey('auth.User') # 작성자명
    title = models.CharField(max_length=200) # 제목, 길이제한 O
    text = models.TextField() # 내용, 길이제한 X
    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): # _ _ 2개
    return self.title

models.CharField - 글자 수가 제한된 텍스트

models.TextField - 글자 수에 제한이 없는 긴 텍스트

models.DateTimeField - 날짜와 시간을 의미

models.ForeignKey- 다른 모델에 대한 링크를 의미

 

4. 데이터베이스에 모델을 위한 테이블 만들기 python manage.py makemigrations blog

 

5. blog/migrations/0000_initial.py 생성완료 -> python manage.py migrate blog

[!] DB는 db.sqlite3 파일안에 들어있다.

 

댓글

💲 추천 글