[Django] 회원가입 엔드 포인트

DONGHYUN KOO·2020년 9월 2일
0

Django

목록 보기
7/9

아직까지 장고의 정확한 기능과 사용법을 알지 못해 이전에 했던 repl.it 장고 내용을
참고하여 진행하였습니다.

> cd /home/soheon-lee/Django_test # 내 프로젝트 만들 디렉토리
django-admin startproject project_westagram
#project_westagram 디렉토리 생성

project_westagram
├── views.py
└── migrations
| └── init.py
├── models.py
├── settings.py
├── urls.py
db.sqlite3.py

위의 구조가 장고 파일의 기본 구조입니다.

  • 'views.py'는 파일이름을 봤을 때는 화면에 대한 파일이라고 생각하실 수 있지만, 이 파일은 로직을 담당하는 파일입니다. 앞으로 여러분이 장고프로젝트를 진행하면서 제일 많이 다루게될 파일 입니다.
  • 'migrations 디렉토리'는 models.py파일에 정의한 테이블 구조를 manage.py의 makemigrations 옵션을 통해 생성되는 파일이 저장되는 디렉토리 입니다.
  • 'models.py'는 바로 장고의 핵심 기능중 하나인 ORM과 관련되어 있는 파일입니다. 단순하게는 데이터베이스의 테이블을 정의하는 파일이라고 생각하시면 좋습니다. 장고 ORM은 뒤에 설명이 있으니, 지금은 이정도로 정리하도록 하겠습니다.
  • 'settings.py' 파일은 이름대로 프로젝트 관련 모든 설정 정보를 담고 있는 파일입니다.
  • 'urls.py' 파일은 이름대로 url 경로에 대한 부분입니다.

개발 서버 작동하기

cd project_westagram # project_westagram 디렉토리
python manage.py runserver # ./manage.py runserver도 됨

erforming system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

8월 03, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/

서버를 활성화한 뒤 브라우저에 http://127.0.0.1:8000/ 입력해서 접속. 아래와 같이 뜨면 성공

회원가입 앱 만들기

$ python manage.py startapp account/user

account/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

내 앱의 첫번째 뼈대가 완성되었다. 지금부터 해야할 작업은 다음과 같다.
**

  • Project에 내 app 등록하기
  • 뷰 작성하기
  • URL 연결하기
  • 데이터베이스 만들기
  • 모델 만들기 + 데이터베이스에 연결하기**

(1) Project에 내 app 등록하기

project_westagram/settings.py

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

(2) View (뷰) 작성하기

account/views.py

from django.http import HttpResponse 
def index(request):
		return HttpResponse("Hello, world. You're at the polls index.")

뷰만 만든다고 화면이 보이는 것이 아니라, 이 뷰를 호출하려면 이와 연결된 URL이 있어야 한다.

(3) URL 연결하기

앱 경로에 url 생성하기

뷰를 호출하려면 ← 이와 연결된 URL이 있어야 함 ← 이를 위해 URLconf가 사용됨 ← polls 디렉토리에서 URLconf를 생성하려면 urls.py 파일 생성해야함 (vim urls.py)

즉, view에 맞는 각각의 url이 있어야하고, 그 url은 account/urls.py 에서 만든다!

account/urls.py

from django.urls import path 
from . import views 
urlpatterns = [
	path('', views.index, name='index'), 
]

urls 모듈을 만든 것이 된다. 이 모듈은 account의 개인 모듈이고, 이를 최상위(project_westagram)에서 바라보게끔 (참고하도록) 만들어야 한다.

최상위 project_westagram 로 이동하여 url 연결해주기

project_westagram/urls.py

from django.contrib import admin
from django.urls import include, path
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

project_westagram.urls.py 에다가 account.urls.py를 include( ) 했기 때문에, polls.urls 내부에 있는 index 뷰가 URLconf에 연결됐다고 이해하면 된다.

서버에서 확인해보기

/project_westagram 경로에서

python manage.py runserver # 서버가 구동됨.

3. 데이터베이스 생성하기

project_westgram 아래 명령어 실행

/manage.py migrate

아래와 같이 나오면 성공

migrate 명령어는 /mysite/settings.py 파일 내부에 있는 INSTALLED_APPS 를 보고 필요한 데이터 베이스를 생성하거나, 수정사항을 저장하는 역할을 한다. 즉, 이 명령을 실행한 후라면, 필요한 데이터 베이스의 기본 구조가 만들어졌다고 이해하면 된다.

4. Model (모델) 만들기

모델은 개발자가 저장하는 데이터의 필수적인 필드들과 동작들을 갖고 있다. 이 설문조사 app 에는 크게 두 모델을 포함시킬 것인데, QuestionChoice 이다. 각 모델은 클래스 형태로 표현하면 된다.

from django.db import models
class Users(models.Model):
    name       = models.CharField(max_length = 50)
    email      = models.CharField(max_length = 50)
    password   = models.CharField(max_length = 300)
    created_at = models.DateTimeField(auto_now_add = True)
    updated_at = models.DateTimeField(auto_now = True)

모델 활성화하기

활성화 하기 전 해야하는 것 makemigrations 라는 명령어로 내가 모델을 변경시킨 사실 (또는 생성했다는 사실)과 이 변경사항을 migration으로 저장시키고 싶다는 것을 Django에게 알려주는 것이다.

python manage.py makemigrations account

아래와 같이 뜨면 성공

그 다음은 migrate 명령어로 데이터베이스에 모델과 관련된 테이블을 생성한다

python manage.py migrate

0개의 댓글