<질문>
저는 PHP에서 조금 벗어나 Python을 배우고 싶습니다. Python으로 웹 개발을 하려면 템플릿 및 기타 작업에 도움이 되는 프레임워크가 필요합니다.
모든 웹 개발 항목을 테스트하는 데 사용하는 비프로덕션 서버가 있습니다. 일반적인 MySQL 서버 패키지 대신 MariaDB를 실행하는 데비안 7.1 LAMP 스택입니다.
어제 Django를 설치하고 첫 번째 프로젝트를 만들었습니다.첫 번째 웹. 아직 설정을 변경하지 않았습니다.
여기 내 첫 번째 큰 혼란이 있습니다. 튜토리얼에서 나는 Django를 설치한 사람을 따라갔고, 첫 프로젝트를 시작했고, Apache를 다시 시작했고, Django는 그때부터 작동했습니다. 그는 브라우저로 이동하여 문제 없이 Django 기본 페이지로 이동했습니다.
그러나 나는 첫 번째 웹 폴더로 cd하고 실행해야합니다.
python manage.py runserver myip:port
그리고 그것은 작동합니다. 문제 없어요. 그러나 이것이 이렇게 작동해야 하는지, 그리고 이것이 결과적으로 문제를 일으킬 것인지 궁금합니다.
나의두 번째 질문 내 MySQL 데이터베이스를 사용하도록 설정하려는 것입니다. /firstweb/firstweb 아래의 settings.py로 이동하면 ENGINE과 NAME이 표시되지만 여기에 무엇을 입력해야 할지 잘 모르겠습니다.
그런 다음 USER, PASSWORD 및 HOST 영역에서 이것이 내 데이터베이스와 해당 자격 증명입니까? 내가 사용하는 경우로컬 호스트 그냥 넣어도 될까요로컬 호스트 호스트 영역에서?
<답변1>
MySQL support 추가하는 것은 간단합니다. 당신의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',
}
}
MySQL을 활용할 수도 있습니다.option files, Django 1.7부터. 다음을 설정하여 이 작업을 수행할 수 있습니다.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
인수를 사용하면 자신이 아닌 다른 시스템이 개발 애플리케이션에 액세스할 수 있습니다. 애플리케이션을 배포할 준비가 되면 다음 장을 살펴보는 것이 좋습니다.Deploying Django 에djangobook
MySQL의 기본 문자 집합은 종종 utf-8이 아니므로 다음 SQL을 사용하여 데이터베이스를 생성해야 합니다.
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
사용하는 경우Oracle's MySQL connector 당신의ENGINE
라인은 다음과 같아야 합니다.
'ENGINE': 'mysql.connector.django',
먼저 OS에 mysql을 설치해야 합니다.
brew install mysql (MacOS)
또한 mysql 클라이언트 패키지는 python 3(MySQL-Client
파이썬 2에서만 작동합니다)
pip3 install mysqlclient
<답변2>
가장 먼저 아래 명령을 실행하여 python 종속성을 설치하십시오. 그렇지 않으면 python runserver 명령에서 오류가 발생합니다.
sudo apt-get install libmysqlclient-dev
sudo pip install MySQL-python
그런 다음 #Andy가 정의한대로 settings.py 파일을 구성하고 마지막으로 실행합니다.
python manage.py runserver
즐감하세요..!!
<답변3>
python3.x를 사용하는 경우 아래 명령을 실행하십시오.
pip install mysqlclient
그런 다음 settings.py를 다음과 같이 변경하십시오.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB',
'USER': 'username',
'PASSWORD': 'passwd',
}
}
<답변4>
위에서 말했듯이 xampp를 먼저 쉽게 설치할 수 있습니다.https://www.apachefriends.org/download.html 그런 다음 다음 지침을 따르십시오.
- 다음에서 xampp 설치 및 실행http://www.unixmen.com/install-xampp-stack-ubuntu-14-04/, 그런 다음 GUI에서 Apache 웹 서버 및 MySQL 데이터베이스를 시작합니다.
- 웹 서버를 원하는 대로 구성할 수 있지만 기본적으로 웹 서버는 다음 위치에 있습니다.
http://localhost:80
및 데이터베이스port 3306
, 및 PhpMyadminhttp://localhost/phpmyadmin/
- 여기에서 데이터베이스를 보고 매우 친숙한 GUI를 사용하여 액세스할 수 있습니다.
- Django 프로젝트에서 사용하려는 데이터베이스를 만듭니다.
다음과 같이
<사전><코드>데이터베이스 = { '기본': { '엔진': 'django.db.backends.mysql', '이름': 'DB_NAME', '호스트': '127.0.0.1', '포트': '3306', '사용자': '루트', '비밀번호': '', }}settings.py
파일을 수정합니다.가상 환경에 다음 패키지를 설치합니다(가상 환경에서 django를 사용하는 경우 더 선호됨).
sudo apt-get install libmysqlclient-dev
pip install MySQL-python
그렇다!! 아주 쉬운 방법으로 Django를 MySQL로 구성했습니다.
이제 Django 프로젝트를 실행하세요:
python manage.py 마이그레이션
파이썬 관리.py 실행 서버
<답변5>
사실 다른 환경, 파이썬 버전 등 많은 문제가 있습니다. 또한 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
수락 된 답변으로 가야합니다. 그리고 그것이 당신에게 중요하다면 불필요한 패키지를 제거할 수 있습니다.
<답변6>
이 명령 실행
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 연결 즐기기
<답변7>
- 설치
mysqlclient
sudo pip3 install mysqlclient
오류가 발생하면:
"python setup.py egg_info" 명령이 오류 코드 1로 실패했습니다. /tmp/pip-install-dbljg4tx/mysqlclient/
그 다음에:
1. sudo apt install libmysqlclient-dev python-mysqldb
2. sudo pip3 install mysqlclient
settings.py 수정
<사전><코드>데이터베이스 = { '기본': { '엔진': 'django.db.backends.mysql', '이름': '웹사이트', '사용자': '루트', '비밀번호': '', '호스트': '127.0.0.1', '포트': '3306', '옵션': {'init_command':"SET sql_mode='STRICT_TRANS_TABLE',"}, } }
<답변8>
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용 스토리지 엔진을 설정하는 것입니다. setting.py에서 원할 수 있습니다.
'OPTIONS': {
'init_command': 'SET storage_engine=INNODB',
}
<답변9>
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'root',
'PASSWORD': '*****',
'HOST': '***.***.***.***',
'PORT': '3306',
'OPTIONS': {
'autocommit': True,
},
}
}
그 다음에:
python manage.py migrate
성공하면 다음 테이블이 생성됩니다.
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session
그리고 당신은 mysql을 사용할 수 있습니다.
이것은 Django 버전 1.11.5에서 테스트한 쇼케이스 예입니다. Django-pool-showcase
<답변10>
MySQL 데이터베이스를 사용하도록 설정하려면 주어진 단계를 따르십시오:
1) Install MySQL Database Connector :
sudo apt-get install libmysqlclient-dev
2) Install the mysqlclient library :
pip install mysqlclient
3) Install MySQL server, with the following command :
sudo apt-get install mysql-server
4) Create the Database :
i) Verify that the MySQL service is running:
systemctl status mysql.service
ii) Log in with your MySQL credentials using the following command where -u is the flag for declaring your username and -p is the flag that tells MySQL that this user requires a password :
mysql -u db_user -p
iii) CREATE DATABASE db_name;
iv) Exit MySQL server, press CTRL + D.
5) Add the MySQL Database Connection to your Application:
i) Navigate to the settings.py file and replace the current DATABASES lines with the following:
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/etc/mysql/my.cnf',
},
}
}
...
ii) Next, let’s edit the config file so that it has your MySQL credentials. Use vi as sudo to edit the file and add the following information:
sudo vi /etc/mysql/my.cnf
database = db_name
user = db_user
password = db_password
default-character-set = utf8
6) Once the file has been edited, we need to restart MySQL for the changes to take effect :
systemctl daemon-reload
systemctl restart mysql
7) Test MySQL Connection to Application:
python manage.py runserver your-server-ip:8000
<답변11>
이것은 상당히 오래된 질문이지만 누군가 최신 버전의 python 및 django에서 작업하는 경우 다음 단계를 따를 수 있습니다.
Note - Versions
Python version - 3.9.5
Django version - 3.2.4
MySQL server version - 5.7
django를 설치한 후 다음 명령을 실행합니다.
pip install mysqlclient
내 IDE에서 내가 할 경우pip list
이것은 패키지 및 버전 목록입니다.
Package Version
----------- -------
asgiref 3.3.4
Django 3.2.4
mysqlclient 2.0.3
pip 21.1.2
pytz 2021.1
setuptools 57.0.0
sqlparse 0.4.1
이제 사용할 데이터베이스 스키마를 이미 생성했는지 확인하십시오.
에서settings.py
DATABASES 변경 아래의 django 프로젝트 파일
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
에게
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',
}
}
둘 다 실행할 수 있어야 합니다.
python manage.py makemigrations
그리고
python manage.py migrate
<답변12>
먼저 MySQL 데이터베이스를 생성해야 합니다. 다음으로 이동settings.py
파일 및 편집'DATABASES'
MySQL 자격 증명이 있는 사전:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'YOUR_DATABASE_NAME',
'USER': 'YOUR_MYSQL_USER',
'PASSWORD': 'YOUR_MYSQL_PASS',
'HOST': 'localhost', # Or an IP that your DB is hosted on
'PORT': '3306',
}
}
다음은 virtualenv에서 MySQL을 사용하도록 Django를 설정하기 위한 전체 설치 가이드입니다.
http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/
<답변13>
python3 -m pip install mysql-connector
pip install mysqlclient
이 명령은 오류 없이 django에서 mysql db를 설정하는 데 도움이 됩니다.
'개발 > Python' 카테고리의 다른 글
[파이썬] pytorch에서 model.eval()은 무엇을 합니까? (0) | 2022.10.06 |
---|---|
[파이썬] 아무것도 출력하지 않는 logging (0) | 2022.10.06 |
[파이썬] 스크립트를 실행하려고 할 때 "ImportError: No module named" (0) | 2022.10.06 |
파이썬 POST 바이너리 데이터 (0) | 2021.04.21 |