MVC & MTV
Model
안전하게 데이터를 저장
View
데이터를 적절하게 유저에게 보여줌
Control, Template (Django)
사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트
Django 개념
WSGI (wsgi.py)
웹서버와 장고를 연결해주는 역할
URL Resolution (urls.py)
웹페이지로부터 신호가 들어오면 정규 표현식에 따라 view를 연결
VIEW (views.py)
사용자의 이벤트를 처리하는 곳
예를 들어 데이터베이스를 불러오는 명령을 내리면 DB로 명령을 내리게 하는 곳
MODEL로 신호를 보냄
MODEL (models.py)
DB로부터 데이터를 가지고 오는 곳
SQL query 없이 manager.py를 통해 DB query 가능
TEMPLATE
html 파일을 통해서 사용자에게 보여줌
다양한 이벤트를 처리함
FORM (forms.py)
Model과 template를 관리, 처리
Project와 App
프로젝트 생성
$ django-admin startproject <프로젝트이름>
Settings.py
프로젝트 전체 세팅 관련 코드
app 생성 (웹 어플리케이션 생성)
$ ./manage.py startapp <앱 이름>
admin.py
페이지 관리자 권한자가 볼수 있는 페이지 관련된 내용
setting.py
프로젝트 환경 설정 파일
DEBUG
DEBUT=True
에러 등 다양한 변수들의 개발하는 단계에서 사용
배포시 False로 바꿔서 디버그 정보 노출 안되게 설정
INSTALLED_APPS
Pip로 설치한 앱 또는 본인이 만든 app 추가
MIDDELWARE_CLASSES
Request와 response 사이의 주요기능 레이어
인증과 보안 기능이 포함
TEMPLATE
Django template 관련 설정, 실제 뷰(html, 변수)
다양한 변수, 기능을 다루는 설정파일
DATABASES
다양 DB 엔진 연결설정
STATIC_URL
정적 파일의 URL (css, javascript, image, etc)
manage.py
프로젝트 관리 명령어 모음
주요 명령어
startapp - 앱 생성
runserver - 서버 실행
createsuperuser - 관리자 생성
makemigrations <앱 이름> - 앱의 모델 변경 사항 체크
migrate - 변경 사항을 DB에 반영
shell - 쉘을 통해 데이터를 확인
collectstatic -static 파일을 한 곳에 모음
ex) ./manage.py runserver 0.0.0.0:8080
Mariadb 설치 (설치 당시 버전 10.1.34)
$ sudo apt-get install mariadb-server python3-pip libmysqlclient-dev
$ pip3 install pymysql mysqlclient
Mariaadb 설정
$ sudo mysql_secure_installation
setting.py 수정
DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': 'webui', 'USER': 'admin', 'PASSWORD': 'que1234!', 'HOST': 'localhost', 'PORT': '', } } |
NAME - database 이름
USER - mysql의 user
HOST - 빈 칸이면 localhost가 default
PORT - 빈 칸이면 3306이 default
Django migrate
$ python3 manage.py makemigrate
$ python3 manage.py migrate
Create Table
CREATE TABLE `webui`.`user_info` ( `user_id` BIGINT NULL AUTO_INCREMENT, `user_firstname` VARCHAR(45) NULL, `user_lasttname` VARCHAR(45) NULL, `user_password` VARCHAR(45) NULL, `user_confirmpassword` VARCHAR(45) NULL, PRIMARY KEY (`user_id`)); |
nodejs 설치 및 설정 (0) | 2021.12.05 |
---|---|
AWS Cloudfront 기능 파악 (0) | 2020.03.30 |
댓글 영역