Никакое приложение не может обойтись без использования базы данных! В современном мире это уже факт. Тем более это относится к web приложению. Тем более к django.
Приступим.
Ставить будем в ubuntu linux. Не пугайтесь для windows отличия только в виде установки. Вам придётся самим качать необходимые пакеты и устанавливать их.
Ставим базу и python модуль для работы с ней (https://sourceforge.net/projects/mysql-python/ ):
sudo apt-get install mysql-server python-mysqldb
django я предполагаю у вас уже установлено.
После закачки и установки пакетов (у вас должны были спросить имя для root пользователя базы) необходимо немного подредактировать настройки mysql.
sudo gedit /etc/mysql/my.cnf
В секцию [client] необходимо добавить строку:
default-character-set=utf8
В [mysqld] добавим строчки:
default-character-set=utf8
collation_server=utf8_unicode_ci
Перезагружаем mysql сервер:
sudo service mysql restart
Готово. Создадим базу данных для нашего приложения.
Заходим в консоль mysql :
mysql -u root -p
Спросят пароль к базе данных.
Создаем базу:
mysql> CREATE DATABASE mysite;
Обратите внимание что «mysql> » в строку добавлен чтобы указать что мы находимся в консоли mysql.
Даём привелегии пользователю root ( для другого юзверя просто меняем имя)
GRANT ALL ON mysite.* TO ;
Готово.
Теперь настраиваем приложение django.
Тут есть отличия.
Для версии 1.1 настройки указываются обычными директивами в settings.py.
Для версии 1.2 предусмотрена структура данных. Но директивы внутри неё теже самые.
Для 1,1 :
DATABASE_ENGINE = ‘mysql’ # ‘postgresql_psycopg2’, ‘postgresql’, ‘mysql’, ‘sqlite3’ or ‘oracle’.
DATABASE_NAME = ‘mysite’ # Or path to database file if using sqlite3.
DATABASE_USER = ‘root’ # Not used with sqlite3.
DATABASE_PASSWORD = ‘password for your user’ # Not used with sqlite3.
DATABASE_HOST = » # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = » # Set to empty string for default. Not used with sqlite3.
В 1,2 всё тоже только структура такая:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘mydatabase’
}
}
За сим всё.