Я хочу немного уйти от PHP и изучить Python. Для того, чтобы сделать веб-разработку с помощью Python, мне понадобится структура, которая поможет в шаблонах и других вещах.
У меня есть непродуктивный сервер, который я использую для тестирования всех материалов для веб-разработки. Это стек LAMP Debian 7.1, который запускает MariaDB вместо обычного пакета MySQL-сервера.
Вчера я установил Django и создал свой первый проект под названием firstweb. Я еще не изменил настройки.
Вот моя первая большая путаница. В учебнике я последовал за парнем, который установил Django, начал свой первый проект, перезапустил Apache, и Django просто работал с тех пор. Он пошел в свой браузер и без проблем отправился на страницу по умолчанию Django.
Тем не менее, мне нужно записать cd в папку firstweb и запустить
python manage.py runserver myip:port
И это работает. Нет проблем. Но мне интересно, будет ли это работать так, и если это вызовет проблемы на линии?
Мой второй вопрос заключается в том, что я хочу его настроить, поэтому он использует мою базу данных MySQL. Я вхожу в мои settings.py под /firstweb/firstweb, и я вижу ДВИГАТЕЛЬ и ИМЯ, но я не уверен, что здесь поставить.
И тогда в областях 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',
}
}
У вас также есть возможность использовать файлы опций MySQL , начиная с 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
позволяет компьютерам, отличным от вашего собственного, обращаться к вашему приложению разработки. После того как вы готовы развернуть свое приложение, я рекомендую взглянуть на главу Развертывание Django на djangobook
Набор символов по умолчанию Mysql часто не является utf-8, поэтому обязательно создайте свою базу данных, используя этот sql:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
Если вы используете соединитель Oracle MySQL, ваша строка ENGINE
должна выглядеть так:
'ENGINE': 'mysql.connector.django',
Прежде всего, запустите приведенные ниже команды для установки зависимостей на python, иначе команда python runningerver выведет ошибку.
sudo apt-get install libmysqlclient-dev
sudo pip install MySQL-python
Затем настройте файл settings.py, как определено в #Andy, и при последнем выполнении:
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 (если вы используете django на virtualenv, что более предпочтительно):
sudo apt-get install libmysqlclient-dev
pip install MySQL-python
Что это! вы настроили Django с MySQL очень простым способом.
Теперь запустите проект Django:
python manage.py migrate
python manage.py runningerver
Если вы используете python3.x, то выполните команду ниже
pip install mysqlclient
Затем измените параметр .py, например
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB',
'USER': 'username',
'PASSWORD': 'passwd',
}
}
На самом деле, есть много проблем с разными средами, версиями python и так далее. Вам также может потребоваться установить файлы файлы python, поэтому для "перебора" установки я бы выполнил все эти действия:
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, я предлагаю следовать официальной конфигурации django при подключении mysql: 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, вы можете захотеть его в настройке .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. Затем перейдите в файл 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',
}
}
Ниже приведено полное руководство по установке Django для использования MySQL в virtualenv:
http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/