PHPから少し離れてPythonを学びたいです。 PythonでWeb開発をするためには、テンプレート作成などを手助けするフレームワークが必要になります。
私はすべてのWeb開発のものをテストするために使用している非本番サーバーを使用しています。これは、一般的なMySQLサーバーパッケージの代わりにMariaDBを実行するDebian 7.1 LAMPスタックです。
昨日、Djangoをインストールし、最初のプロジェクトfirstwebを作成しました。まだ設定を変更していません。
これが私の最初の大きな混乱です。チュートリアルでは、私がDjangoをインストールし、最初のプロジェクトを開始し、Apacheを再起動し、それ以降Djangoが動作するようにしました。彼は自分のブラウザに行き、問題なくDjangoのデフォルトページに行きました。
私はしかし、私は私のfirstwebフォルダにcdして実行する必要があります
python manage.py runserver myip:port
そしてそれはうまくいきます。問題ない。しかし、私はそれがこのように動作することになっているのではないかと思っています、そして、これが問題を引き起こすだろうか?
私の2番目の質問は私のMySQLデータベースを使うように設定したいということです。/firstweb/firstwebの下のsettings.pyに入り、ENGINEとNAMEが表示されますが、ここに何を入れるべきかわかりません。
それから、USER、PASSWORD、およびHostの各領域で、これが私のデータベースとその信任状ですか? localhostを使用している場合は、Host領域にlocalhostを入力するだけで済みますか?
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 の 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-Client
はpython 2でのみ機能します)。
pip3 install mysqlclient
最初のうちは以下のコマンドを実行してpythonの依存関係をインストールしてください。そうしないとpython runserverコマンドがエラーをスローします。
Sudo apt-get install libmysqlclient-dev
Sudo pip install MySQL-python
#Andyで定義されているようにsettings.pyファイルを設定し、最後に実行します。
python manage.py runserver
楽しむ..!!
上記のとおり、最初にxamppを https://www.apachefriends.org/download.html から簡単にインストールできます。その後、以下の手順に従います。
http://localhost:80
、データベースはport 3306
、PhpMyadminはhttp://localhost/phpmyadmin/
にあります。settings.py
ファイルを次のように編集します。
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.mysql',
'NAME': 'DB_NAME',
'Host': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': '',
}}
次のパッケージをvirtualenvにインストールします(virtualenvでDjangoを使用している場合はこれがより望ましいです)。
Sudo apt-get libmysqlclient-devをインストールしてください。
mySQL-pythonのインストール
それでおしまい!!あなたはとても簡単な方法でMySQLでDjangoを設定しました。
それではDjangoプロジェクトを実行してください。
python manage.py migrate
python manage.py runserver
あなたがpython3.xを使用しているならば、それから以下のコマンドを実行してください
pip install mysqlclient
それからsetting.pyを以下のように変更します。
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.mysql',
'NAME': 'DB',
'USER': 'username',
'PASSWORD': 'passwd',
}
}
実際、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
あなたは受け入れられた答えと一緒に行くのが良いはずです。それがあなたにとって重要なら、そして不要なパッケージを削除することができます。
これらのコマンドを実行してください
Sudo apt-getインストールpython-dev python3-dev
Sudo apt-get libmysqlclient-devをインストールしてください。
mySQL-pythonのインストール
pipインストールpymysql
ピップインストール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
もう1つの便利なオプションは、Django用にストレージエンジンを設定することです。あなたはそれをあなたのsetting.pyに入れたいと思うかもしれません:
'OPTIONS': {
'init_command': 'SET storage_engine=INNODB',
}
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
そしてuはmysqlを使うことができます。
これはショーケースの例です、Djangoバージョン1.11.5でテストする: Django-pool-showcase
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
最初にMySQLデータベースを作成しなければなりません。それからsettings.py
ファイルに行き、あなたのMySQL資格情報で'DATABASES'
辞書を編集してください。
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/