Python/Django

나의 첫 Django Project : community - 2 -

scarlet0star 2022. 8. 22. 20:55

시작하기 앞서서 mysql을 설치한다.

https://dev.mysql.com/downloads/mysql/

 

MySQL :: Download MySQL Community Server

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

설치 후 환경변수 설정까지는 전과 비슷한 흐름이지만 마찬가지로 자세한 과정을 담은 링크를 남긴다.

https://velog.io/@joajoa/MySQL-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95

 

MySQL 다운로드 및 설치 방법

📌Window10에 MySQL 다운로드 및 설치 하기 1. MySQL 홈페이지 접속 MySQL 링크 주소 :

velog.io

 

윈도우 powershell을 실행하고 mysql을 가동한다.

mysql -u root -p

해당 커맨드를 입력하면 root 아이디로 접속, 비밀번호를 입력한다는 의미이다. 비밀번호는 mysql 설치시 입력했던 비밀번호이다. mysql에 접속이 완료됐다면 사진과 같이 되어있을 것이다. 원하는 이름의 데이터베이스를 생성하자.

 CREATE DATABASE <데이터베이스 명> DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

데이터베이스 명 뒤에 해당하는 명령어는 데이터베이스의 문자열 세팅이다. utf8mb4는 😊와 같은 이모지까지 지원하는 문자열 세팅이기 때문이다. 만약 이러한 설정이 되지 않았다면 데이터베이스 내에서 문자열이 깨질 수도 있기 때문에 생성시 혹은 생성 이후에 수정해줘야한다. 내가 만들고자 하는 것은 커뮤니티, 커뮤니티에서 이모지에 글 제목이나 댓글에 이모지를 쓸 상황은 분명 있으므로 지원케 하는 것이 합당하다.

 

데이터베이스 생성이 완료됐다면, 다음과 같이 Query OK 구문이 뜰 것이다.

이후 다시 settings.py의 데이터베이스 부분을 고치자.

 

기존에는 sqlite3를 이용한다고 되어있을텐데, 우리는 mysql을 사용할 예정이므로 다음과 같이 고친다. 이름은 데이터베이스의 이름. 유저/비밀번호는 root 혹은 mysql에서 생성하여 권한을 부여받은 계정과 비밀번호으로 지정하고, HOST는 일단 localhost라고 기입한다. 포트는 mysql 설치시 바꾸지 않았다면 3306이다. 또한 options을 추가하여 문자열 인코딩 utf8mb4를 사용한다고 명시한다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '',
        'USER': '',
        'PASSWORD' : '',
        'HOST' : 'localhost',
        'PORT' : '3306',
        'OPTIONS':{
            'charset':'utf8mb4'
        }
    }
}

이제 데이터베이스와 연동하여 내 사이트의 정보를 mysql 데이터베이스에 담을 준비가 되었다.

python manage.py startapp <app 이름>

 

이제 사이트 내에서 작동할 앱(기능)들을 생성하자. 사이트의 기본이 되는 유저정보를 담는 앱 user이 생성되었다. 앱이 성공적으로 생성되었으면 디렉토리에서 user 폴더 안에 여러가지가 생성된 것을 볼 수 있다.

이후에 전 포스트에서 설명했던 것처럼 user를 installed_apps에 기입해준다.

path("user/",include('user.urls')),

이후 프로젝트.url에서 include를 추가적으로 import 하고 해당 코드를 기입해준다. 해당 코드는 홈페이지에서 user 앱에서 지정한 url를 향할 때에는 user/를 포함한다는 의미이다. 이러한 방식으로 메인 urls.py에서는 include를 통해 각 앱의 url을 효율적으로 관리할 수 있다.

 

 

이제 지난 포스트에서 했던 것처럼 urls.py 와 views.py 그리고 templates을 작성하자. 단, 이번에는 user 폴더 안에서다. 해당 파일이 폴더에 없는 것 같다면 만들면 된다. templates 폴더안에 user 앱에만 사용할 html을 모아두는 user 폴더를 생성하고 안에 home.html을 만들었다.

 

 

 

이후 user 폴더안에 urls.py 와 views.py를 만들고 지난 포스트와 비슷하게 만들었다. app_name과 path 안에 name, render 등등은 추후 다시 설명할것이다. 마찬가지로 runserver를 해 서버를 기동시키고 들어가면 이전에 만든 homepage가 반겨줄 것이다. 이 때 주소창에 뒤에 /user/를 붙이면

html에 입력한 대로 출력되는 것을 볼 수 있다. 아까 설명처럼 user/ 을 입력하는 것만으로 user에서 지정한 url에(' ') 접속할 수 있다.

 

내용이 생각보다 길어져 데이터베이스를 구축한 노력은 다음 포스터에서 이어질 예정이다.