• Home
  • About
    • Rinha7 photo

      Rinha7

      Computervision, tf, keras, torch

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

Django 프로젝트 시작

05 Jul 2019

Reading time ~1 minute

시작

이번 프로젝트에서 저희는 python 코드를 이용한 글과 댓글의 감정 분석 사이트를 제작할 것입니다. python으로 된 코드를 서버에 올리기 위해 Django를 사용할 것입니다.

Django project

우선 가상환경을 만들고, django를 설치합니다.

python3 -m venv venv_ev
source venv_ev/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install django~=2.0.0

이후 project를 만들고, 안에 app 하나를 만듭니다. 현재 목표는 blog 형태와 같이 글 쓰기와 Database에 저장이 가능한 사이트를 목표로 하고 있으므로, 우선 블로그 기능을 구현할 app을 만듭니다.

django-admin startproject ev
python manage.py startapp blog 

이 프로젝트에서는 MySQL DB를 사용하므로, django와 mysql 연동에 필요한 드라이버 모듈을 설치합니다.

sudo apt-get install libmysqlclient-dev
pip install mysqlclient
pip install pymysql

이제 settings.py 의 db 설정을 mysql로 바꾸어줍니다.

DATABASES = {  
  'default': {  
  'ENGINE': 'django.db.backends.mysql',  
  'NAME': 'ev',  
  'USER': 'root',  
  'PASSWORD' : '',  
  'HOST' : '127.0.0.1',  
  'PORT' : '3306',  
 }}

ev라는 이름의 databse를 미리 mysql에 설정해두었고, user는 root로 설정, 비밀번호는 알맞게 입력하면 됩니다. </br> 이제 변경 사항을 django에 적용해야합니다. manage.py가 있는 디렉토리로 돌아와 다음 명령을 실행합니다.

python manage.py migrate

실행시 제대로 되지 않고,

django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'") 와 같은 에러가 발생하는 경우가 있습니다.

이 경우에는, db에 root가 아닌 user를 만들어 줌으로서 해결할 수 있습니다. mysql -u root -p 로 mysql 에 접속한 이후,

create user 'django'@'localhost' identified by '';
grant usage on *.* to 'django'@'localhost';
grant all privileges on ev.* to 'django'@'localhost';

와 같이 새로운 user를 만들고, 만들어 두었던 ev database의 권한을 줍니다.

이후, settings.py 의 user와 password 부분을 새롭게 만든 user로 설정하고, migration을 실행하면 성공적으로 실행되는 것을 확인할 수 있습니다.



djangobackendblogweb Share Tweet +1