194

PHPから少し離れて、Pythonを学びたいです。Python で Web 開発を行うには、テンプレート作成などを支援するフレームワークが必要です。

Web 開発のすべてをテストするために使用する非運用サーバーがあります。これは、一般的な MySQL サーバー パッケージの代わりに MariaDB を実行する Debian 7.1 LAMP スタックです。

昨日、Django をインストールし、firstwebという最初のプロジェクトを作成しました。まだ設定を変更していません。

これが私の最初の大きな混乱です。チュートリアルでは、Django をインストールし、最初のプロジェクトを開始し、Apache を再起動した後、Django はそれ以降作業を続けました。彼はブラウザにアクセスし、問題なく Django のデフォルト ページに移動しました。

ただし、最初のWebフォルダーにcdして実行する必要があります

python manage.py runserver myip:port

そして、それは機能します。問題ない。しかし、私はそれがこのように機能するはずなのか、そしてこれが将来的に問題を引き起こすのでしょうか?

2 番目の質問は、MySQL データベースを使用するようにセットアップしたいということです。/firstweb/firstweb の下の settings.py にアクセスすると、ENGINE と NAME が表示されますが、ここに何を入力すればよいかわかりません。

そして、USER、PASSWORD、および HOST 領域には、これが私のデータベースとその資格情報ですか? localhostを使用している場合、 localhostを HOST 領域に配置できますか?

4

13 に答える 13

359

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のDeploying Djangoに関する章を参照することをお勧めします。

多くの場合、Mysql のデフォルトの文字セットは utf-8 ではないため、次の sql を使用してデータベースを作成してください。

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

Oracle の MySQL コネクタを使用している場合、ENGINE行は次のようになります。

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

まず、OS に mysql をインストールする必要があることに注意してください。

brew install mysql (MacOS)

また、mysql クライアント パッケージが python 3 用に変更されました ( MySQL-Clientpython 2 でのみ動作します)。

pip3 install mysqlclient
于 2013-10-04T20:09:55.663 に答える
22

python3.x を使用している場合は、以下のコマンドを実行します

pip install mysqlclient

次に、setting.pyのように変更します

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'DB',
     'USER': 'username',
    'PASSWORD': 'passwd',
  }
  }
于 2016-10-06T11:56:10.603 に答える
16

上記で述べたように、最初にhttps://www.apachefriends.org/download.htmlから xampp を簡単にインストールできます。 次に、次の手順に従います。

  1. http://www.unixmen.com/install-xampp-stack-ubuntu-14-04/から xampp をインストールして実行し、GUI から Apache Web サーバーと MySQL データベースを起動します。
  2. 必要に応じて Web サーバーを構成できますが、デフォルトでは、Web サーバーは にhttp://localhost:80あり、データベースはport 3306にあり、PhpMyadminは にあります。http://localhost/phpmyadmin/
  3. ここからデータベースを表示し、非常に使いやすい GUI を使用してデータベースにアクセスできます。
  4. Django プロジェクトで使用するデータベースを作成します。
  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 にインストールします (virtualenv で django を使用している場合は、より好ましい):

    sudo apt-get install libmysqlclient-dev

    pip install MySQL-python

  7. それでおしまい!!非常に簡単な方法で MySQL を使用して Django を構成しました。

  8. Django プロジェクトを実行します。

    python manage.py 移行

    python manage.py ランサーバー

于 2014-12-03T11:14:43.243 に答える
7

実際には、異なる環境、python のバージョンなどで多くの問題があります。また、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

あなたは受け入れられた答えでうまくいくはずです。また、重要な場合は、不要なパッケージを削除できます。

于 2014-12-04T19:38:37.163 に答える
4

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

便利なもう 1 つのオプションは、ストレージ エンジンを django 用に設定することです。setting.py で必要になる場合があります。

'OPTIONS': {
   'init_command': 'SET storage_engine=INNODB',
}
于 2015-03-29T04:13:55.860 に答える
0

最初に 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',
 }
}

仮想環境で MySQL を使用するように Django をセットアップするための完全なインストール ガイドを以下に示します。

http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/

于 2015-06-19T16:41:32.080 に答える
-1
python3 -m pip install mysql-connector
pip install mysqlclient

これらのコマンドは、エラーなしで django で mysql db をセットアップするのに役立ちます

于 2020-12-01T13:37:12.247 に答える