이상이 아닌 현실 💼/Web 💻
Django 프로젝트 시작하기
sroa.chin
2020. 9. 14. 21:30
1. $ pip uninstall django
2. $ pip install django==2.1.15
원래 설치되어있던 3.1.1 버전 지우고 2.1.15 버전으로 재설치
3. $ django-admin startproject api
4. $ cd api
api 프로젝트 시작api 폴더로 이동
5. $ python manage.py startapp board
명령어 입력 후, 좌측의 board 폴더와 여러 py 파일이 생성된다. 이 중 models.py에 사용하고자하는 데이터 클래스를 우측과 같이 입력해준다.
다음으로는 위에서 만들었던 api 프로젝트 밑 settings.py를 열어
ALLOWED_HOSTS = ['*'] 로 고쳐준다. ([]에서 ['*']로)
33번째 줄의 INSTALLED_APPS에 board를 추가해준다.
6. $ python manage.py makemigrations
실행하여 manage.py에 생성한 클래스 board를 생성한다.
7. $ python manage.py migrate
데이터 베이스에 반영한다.
반영 후 api의 urls.py의 urlpatterns에 board에 대한 내용을 추가해준다.
8. $ pip install faker
데이터베이스에 값을 넣기 위해 faker 설치
9. $ pip install django_extensions
django_extentions 설치
10. $ python manage.py shell_plus
Faker를 통해 board클래스 안 더미 데이터를 넣고 싶다.
Faker를 선언해주고 .name(), .text() 등과 같은 함수를 써주면 dummy data가 출력된다.
from django.db import models
from faker import Faker
f = Faker()
# Create your models here.
class notice(models.Model):
id = models.IntegerField(primary_key=True)
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
email = models.CharField(max_length=30)
@classmethod
def dummy(cls, n):
for _ in range(n):
cls.objects.create(
title=f.name(),
content=f.text()
)
위에서 만든 notice 클래스에서 dummy 라는 클래스 메서드를 만들어주기 위해 @classmethod 부분을 추가했다. 다시 shell_plus를 껐다가 (끄는 단축키 Ctrl+d) 켜줘서 notice.dummy(만들고싶은 더미 데이터 수)를 실행해준다.