Django&MySQLの接続
settings.pyの設定
DATABASES_CONF = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '플젝이름',
'USER': '유저이름',
'PASSWORD': '비밀번호',
'HOST': '호스트 IP',
'PORT': '포트번호'
}
}
settings.pyを上記形式で使用したDBで作成します.mysqlclientのインストール
Python MySQLライブラリのインストール
pip install mysqlclinet
インストールライブラリの使用しかし、Pipは現在使用されているコンピュータに正しくインストールされていないため、pip 3を使用してインストールされる.
pip3 install mysqlclinet
Magration
その後、プロジェクトルートディレクトリでDBと移行
make magrations
python manage.py makemigrations --settings=main.config.settings.debug
移行コマンドの生成magrate
python manage.py migrate --settings=main.config.settings.debug
≪移行を適用するコマンド|Apply Migration Command|Eas≫-実際のデータベースに変更を適用するコマンド.
しかし、アプリケーションの移行が継続されていないことを示し、成功しなかったと警告した.
アプリケーションの移行
python manage.py showmigrations --settings=main.config.settings.debug
mysqlで確認したところ、ユーザーも存在し、使いたいデータベースに正しいテーブルがあるので、先に行うことにしました.models.pyの作成
python manage.py inspectdb > models.py --settings=main.config.settings.debug
データベースをinspectdbで倉庫に移行し、標準出力でモデルを構築します.pyとして保存できます.以上のように、デバイステーブルの構造はPythonファイルとして整理保存されています.
DBに関連があるようです.
データベースの確認
python manage.py dbshell --settings=main.config.settings.debug
開発サーバのmysqlには、対応するコマンドでアクセスできます.シェルからquerySetを出力
djangoで作成したプロジェクトではなく、appnameを知らないため、困難に直面しました。
manage.pyは本来app nameがあるはずの位置がmainなのでmainが使えると推測します.
shellを使用してquerysetが正常に出力されているかどうかを確認します
python manage.py shell --settings=main.config.settings.debug
上のコマンドを使用して、Janggoshellを実行します.チャングシェルで
from app_name.model import class_name
の形式で上に作成されたモデルです.pyを移行し、モデル出力クエリーセットをロードできます.ここでappnameが分からないので、移行していないので、進行が困難です.
解決策
base.アプリケーション名をpyのINSTALLEDアプリ(メイン)に追加
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
]
inspectdbを使用して作成されたモデル.pyはプロジェクトのホームディレクトリにあります後続の移行
python manage.py makemigrations main --settings=main.config.settings.debug
python manage.py migrate main --settings=main.config.settings.debug
さっきと違うのは移行を適用したこと…?!
python manage.py showmigrations --settings=main.config.settings.debug
上のコマンドで移行したものをチェックすることができます.main 0001 initialが有効になりました.([X]適用済みを表示)
python manage.py shell --settings=main.config.settings.debug
シェルを再起動します.from main.models import 테이블이름
この部分はずっと間違っていたが、何も表示されなかったので成功した.「テーブル名」モデルクラスが導入された.
'테이블이름'.objects.all()
でクエリーセットを出力できます.問題なく、Shellに出力しました.
DjangoとDBが接続され、このクエリーセットを使用できるようになりました!
Reference
この問題について(Django&MySQLの接続), 我々は、より多くの情報をここで見つけました https://velog.io/@gudwnsepdy/Django-MySQL-연결하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol