[python] MySQL을 사용하도록 장고 설정

PHP에서 조금 벗어나서 Python을 배우고 싶습니다. 파이썬으로 웹 개발을하려면 템플릿과 다른 것들을 도울 프레임 워크가 필요합니다.

모든 웹 개발을 테스트하는 데 사용하는 비 프로덕션 서버가 있습니다. 일반적인 MySQL 서버 패키지 대신 MariaDB를 실행하는 데비안 7.1 LAMP 스택입니다.

어제 Django를 설치하고 firstweb 이라는 첫 프로젝트를 만들었습니다 . 아직 설정을 변경하지 않았습니다.

여기 내 첫 번째 큰 혼란이 있습니다. 튜토리얼에서 나는 남자가 Django를 설치하고, 그의 첫 프로젝트를 시작하고, Apache를 다시 시작했으며, Django는 그때부터 일했습니다. 그는 브라우저로 가서 장고 기본 페이지로 갔다.

그러나 나는 firstweb 폴더로 cd하고 실행해야합니다.

python manage.py runserver myip:port

그리고 작동합니다. 문제 없어요. 그러나 이것이 이와 같이 작동 해야하는지 궁금하고 이것이 문제가 될 수 있습니까?

두 번째 질문은 내가 내 MySQL 데이터베이스를 사용 있도록 설정 할 것입니다. / firstweb / firstweb 아래에 settings.py로 들어가 엔진과 이름이 표시되지만 여기에 무엇을 넣을 지 잘 모르겠습니다.

그런 다음 USER, PASSWORD 및 HOST 영역에서 이것이 내 데이터베이스 및 자격 증명입니까? localhost 를 사용하는 경우 localhost 를 HOST 영역에 넣을 수 있습니까?



답변

MySQL 지원 은 간단합니다. 당신의에서 DATABASES사전,이 같은 항목이 있습니다 :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB_NAME',
        'USER': 'DB_USER',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

Django 1.7부터 MySQL 옵션 파일 을 활용할 수있는 옵션도 있습니다 . 다음 DATABASES과 같이 배열 을 설정하여이 작업을 수행 할 수 있습니다 .

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

또한 /path/to/my.cnf위와 비슷한 설정으로 파일 을 만들어야합니다

[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8

Django 1.7에서이 새로운 연결 방법을 사용하면 연결 순서가 설정되어 있어야합니다.

1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.

즉, OPTIONS에서 데이터베이스 이름을 설정하면 NAME보다 우선하여 MySQL 옵션 파일의 모든 항목을 무시합니다.


로컬 컴퓨터에서 응용 프로그램을 테스트하고 있다면

python manage.py runserver

ip:port인수를 추가하면 자신 이외의 기계가 개발 응용 프로그램에 액세스 할 수 있습니다. 응용 프로그램을 배포 할 준비가되면, 나는에 관한 장에서 보라는 권유를 배포 장고djangobook

MySQL의 기본 문자 집합은 종종 UTF-8이 아니므로 다음 SQL을 사용하여 데이터베이스를 작성하십시오.

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

당신이 사용하는 경우 오라클의 MySQL의 커넥터를 당신의 ENGINE라인은 다음과 같이한다 :

'ENGINE': 'mysql.connector.django',

먼저 OS에 mysql을 설치해야합니다.

brew install mysql (MacOS)

또한 mysql 클라이언트 패키지는 python 3에서 변경되었습니다 ( MySQL-Clientpython 2에서만 작동합니다)

pip3 install mysqlclient


답변

맨 먼저 파이썬 의존성을 설치하려면 아래 명령을 실행하십시오. 그렇지 않으면 python runserver 명령이 오류를 발생시킵니다.

sudo apt-get install libmysqlclient-dev
sudo pip install MySQL-python

그런 다음 #Andy에 의해 정의 된대로 settings.py 파일을 구성하고 마지막에 다음을 실행하십시오.

python manage.py runserver

재밌게 .. !!


답변

python3.x를 사용하는 경우 아래 명령 실행

pip install mysqlclient

그런 다음 setting.py를 변경하십시오.

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'DB',
     'USER': 'username',
    'PASSWORD': 'passwd',
  }
  }


답변

위에서 언급했듯이 https://www.apachefriends.org/download.html 에서 xampp를 쉽게 설치할 수 있습니다
.

  1. http://www.unixmen.com/install-xampp-stack-ubuntu-14-04/ 에서 xampp를 설치하고 실행 한 다음 GUI에서 Apache Web Server 및 MySQL 데이터베이스를 시작 하십시오 .
  2. 웹 서버는 원하는대로 구성 할 수 있지만 기본적으로 웹 서버는에 http://localhost:80있고 데이터베이스는 port 3306에 있고 PhpMyadmin은http://localhost/phpmyadmin/
  3. 여기에서 매우 친숙한 GUI를 사용하여 데이터베이스를보고 액세스 할 수 있습니다.
  4. Django Project에서 사용할 데이터베이스를 작성하십시오.
  5. 다음 settings.py과 같이 파일을 편집하십시오 .

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB_NAME',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '',
    }}
  6. virtualenv에 다음 패키지를 설치하십시오 (virtuenv에서 django를 사용하는 경우 더 선호 됨).

    sudo apt-get 설치 libmysqlclient-dev

    pip 설치 MySQL-python

  7. 그게 다야 !! 매우 쉬운 방법으로 MySQL과 함께 Django를 구성했습니다.

  8. 이제 Django 프로젝트를 실행하십시오 :

    python manage.py 마이그레이션

    python manage.py runserver


답변

실제로 다른 환경, 파이썬 버전 등 많은 문제가 있습니다. python dev 파일을 설치해야 할 수도 있으므로 설치를 ‘강제 실행’하려면 다음을 모두 실행하십시오.

sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip install MySQL-python
pip install pymysql
pip install mysqlclient

당신은 받아 들여지는 대답을 잘 따라야합니다 중요하지 않은 패키지를 제거 할 수 있습니다.


답변

이 명령을 실행

sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip install MySQL-python
pip install pymysql
pip install mysqlclient

그런 다음 settings.py를 구성하십시오.

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

MySQL 연결을 즐기십시오


답변

Andy의 답변이 도움이되지만 django 설정에서 데이터베이스 비밀번호를 노출하는 데 관심이 있다면 mysql 연결에서 django 공식 구성을 따르는 것이 좋습니다. https://docs.djangoproject.com/en/1.7/ref/databases/

여기에 인용 :

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}


# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8

설정에서 ‘HOST’: ‘127.0.0.1’을 바꾸려면 간단히 my.cnf에 추가하십시오.

# my.cnf
[client]
database = NAME
host = HOST NAME or IP
user = USER
password = PASSWORD
default-character-set = utf8

유용한 또 다른 옵션은 django 용 스토리지 엔진을 설정하는 것입니다. 설정에서 원할 수도 있습니다.

'OPTIONS': {
   'init_command': 'SET storage_engine=INNODB',
}