본문 바로가기
django

[리눅스환경] 장고 활용하여 SQL 개발서버 만들기 2

by Antonio Bae 2023. 9. 12.

지난 시간에 이어 리눅스 환경에서 장고를 통해 관리 사이트 만드는 방법을 알려드리겠습니다.

 

해당 페이지를 통해 개발이 가능하나 처음 보시면 어려워 하실 분들을 위해 요점만 짚어 설명드려보겠습니다.

https://docs.djangoproject.com/ko/4.2/intro/tutorial02/

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

속도가 중요하다면 ORM을 통해서 진행하는 방식이기에 결론적으로 비추이지만

해당 방법은 정석적인 sql구문을 명령하여 데이터를 만들고 그것을 파싱해서 확인하는 방법이므로 결과적으로 두번 작업하게 되는 부분 이지만 장고의 MVT패턴을 이해하기 위해 반드시 해봐야 하는 작업니다.

 

 

 

1.마이그레이트

python manage.py migrate
 

2.모델 생성

 

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField("date published")


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
 

3.모델 활성화

INSTALLED_APPS = [
    "polls.apps.PollsConfig",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
]
 

4.polls앱 마이그레이션

python manage.py makemigrations polls
 

 

5.SQL 생성

$ python manage.py sqlmigrate polls 0001
 

6.DB에 테이블 추가(데이터 추가)

python manage.py migrate
 

 

7.파이썬 언어로 shell에서 데이터 넣기

사진 설명을 입력하세요.

사진 설명을 입력하세요.

 

8-1.Question 모델 수정

__str__() 메소드를 question과 Choice에 추가

 

from django.db import models


class Question(models.Model):
    # ...
    def __str__(self):
        return self.question_text


class Choice(models.Model):
    # ...
    def __str__(self):
        return self.choice_text
 

 

8-2. 커스텀 메소드 추가

import datetime

from django.db import models
from django.utils import timezone


class Question(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
 

 

사진 설명을 입력하세요.

사진 설명을 입력하세요.

 

 

9.관리자 계정 생성

해당 코드 입력 후 계정 아이디, 비밀번호, 이메일 계정을 생성해줍니다.

python manage.py createsuperuser
 

 

 

10.개발서버 시작

터미널 환경에서 실행하면 계정으로 접속이 가능합니다.

python manage.py runserver 0.0.0.0:10101
 

사진 설명을 입력하세요.

완성

사진 설명을 입력하세요.

 

 

 

 

 

 

 

 

 

pymysql을 통해서 데이터를 수정하는 방법하는 방법도 있습니다.

settings.py파일에서 서버 연동

 

사진 설명을 입력하세요.

 

 

계정 연동후 DB연결 확인

저는 ssh를 통해 vscode와 mysql를 연동하였습니다.

show tables;
 

사진 설명을 입력하세요.

 

 

다음과 같이 장고를 통해 sql과 연동이 된 모습을 볼 수 있습니다.

 

다음 강의에서 이어 설명드리겠습니다.

감사합니다.