Coding/Python-Fastcampus

[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 3 회차 미션

떡빵 2020. 11. 4. 17:49
728x90

02. MTV - 01. MTV의 M만들기 - 회원

앞서 만든 fccommunity의 연장으로, 이번 강의에서는 fcuser 앱의 Model기능을 담당하는 models.py파일을 다룬다.
기본적으로 
from django.db import models가 작성되어있고,
내가 필요한 모델을 작성해주면된다.

아마도 models를 통해 사용자의 입력값을 전달받고, 등록 수정 삭제 등을 진행하는것 같다.

Fcuser라는 Class를 만들어서 유저 정보와 관련된 모델을 만들고,
사용자명과 비밀번호는 최대 64자로 제한을 하며,
등록시간은 auto_now_add를 사용해서 등록할 때의 시간을 이용한다.

class Fcuser안에 class Meta라는 클래스를 만들어서 사용자의 정보가 등록되는 db의 table이름을 지정해줄 수 있다.

아직은 model부분을 코드만 봐서 그런지 그냥 sql관리가 더 쉬워보인다.

 

 

 

02. MTV - 02. 데이터베이스 관리

makemigrations명령어

 

makemigrations로 자동 생성된 파일


django를 만들면 프로젝트에 자동으로 생성되는 manage.py에 makemigrations라는 명령어를 입력해주면,
자동으로 변한 부분을 체크해서 migrations라는 폴더를 생성하고, 앞서 만든 fcuser 앱의 models.py의 내용을 반영한 class를 만든다.
(해당 class가 db의 table을 만드는 부분인거 같다.)

migrate실행.

manage.py을 migrate해주면 settings에 있던 INSTALLED_APPS에 포함된 앱들이 사용하는 table을 자동으로 생성한다.

 정상 작동하면 db.sqlite3라는 파일이 생성된다.

 

 

 


혹시나, No changes detected라고 뜨면...
settings에 해당 앱을 등록하지 않았거나,
코드를 저장하지 않아서 달라진 부분을 찾지 못한거니, 확인해보면 될 것 같다.


 

 

생성된 db.sqlite3확인 방법

db.sqlite3실행.
>sqlite3 db.sqlite3

table 리스트 출력.
>.tables

table 구조 확인.
>.schema fastcampus_fcuser
=> CREATE TABLE IF NOT EXISTS "fastcampus_fcuser" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "username" varchar(64) NOT NULL, "password" varchar(64) NOT NULL, "registered_dttm" datetime NOT NULL);
(models에서 설정한대로 64자라의 username과 password가 생성됬고, registered_dttm도 datetime으로 설정되어있다.
id는 만들지 않았지만, PK로 자동으로 생성된다.)

sqlite종료.
>.q

 

table의 내용을 바꾸려면 models.py의 내용을 수정하고,
manage.py를 통해 makemigrations를 하고 migrate를 진행하면 변경사항이 db.sqlite3에 반영된다.
(수정하는 models의 앱에 있는 migrations폴더를 보면, 기존의 내용 자체가 바뀌는게 아니고, 수정 사항이 추가로 py파일로 등록된다.)

 

 

 

02. MTV - 03. Django의 admin 소개

django로 프로젝트 생성시 자동으로 생성되는 프로젝트 명과 동일한 앱 폴더를 살펴보면, urls.py라고 있다.

urls.py

기본적으로 위와 같은 구조를 가지고 있는데, admin/이 기본으로 셋팅되어있다.
이는, www.db-log.com/admin이라는 가상의 주소가 있을때,
/admin/qwer, /admin/asdf, /admin/zxcv/poiu 같은 하위 주소들이 admin.site.urls안에 정의된 url을 따라간다는 뜻이다.
(admin.site.urls가 어떤 구성인지를 몰라서, 뭔 소린지 아직 잘 모르것음.)

 

django 서버 실행.
>python manage.py runserver

django 서버 실행 성공
http://127.0.0.1:8000/admin

서버 종료.
>ctrl+c

admin페이지에서 사용할 superuser계정 생성(admin계정)
>python manage.py createsuperuser
(ID, E-mail, pw 입력해주면 됨.)

 

서버를 다시 실행하면, 등록한 superuser로 로그인이 가능하다

admin에 로그인 성공하면, 위처럼 기본적으로 django에서 지원하는 관리기능을 볼 수 있다.

 

 

올인원 패키지 : 파이썬 웹 개발👉https://bit.ly/33a7nvc

728x90