Встановлення зв'язки Django та MySQL на Debian 9
Встановлення Django
-
Встановлюємо Python та додатковий інструментарій
apt install python3 python3-pip python3-venv
-
Створюємо папку для проекту та віртуальне середовище
mkdir myproject cd myproject python3 -m venv venv source venv/bin/activate
-
Встановлюємо Django та перевыряємо встановлену версію
python3 -m pip install Django python -m django --version
-
Створюємо новий проект
django-admin startproject myproject
З’єднання з MySQL
-
Встановлюємо Percona Server
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb apt update apt install percona-server-server-5.7
-
Створюємо базу данних
CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
-
Встановлюємо mysqlclient
apt install libmysqlclient-dev
Для percona-server отримаємо наступне попередження
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Пакет libmysqlclient-dev — виртуальный, его функции предоставляются пакетами: libperconaserverclient20-dev 5.7.28-31-1.stretch libperconaserverclient18.1-dev 5.6.47-87.0-1.stretch libperconaserverclient18-dev 5.5.62-rel38.14-1.stretch Вы должны явно указать, какой именно вы хотите установить. E: Для пакета «libmysqlclient-dev» не найден кандидат на установку
Уважно читаємо та робимо вибір у відповідності до встановленої версії MySQL (в нашому випадку версія 5.7)
apt install libperconaserverclient20-dev
python3 -m pip install mysqlclient
-
Редагуэмо файл ~/myproject/myproject/settings.py:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'test', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } }
-
Створюємо і застосовуємо міграції
python manage.py makemigrations cd myproject python3 manage.py migrate
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK
-
Створюємо адміністратора
python3 manage.py createsuperuser
-
Запускаємо сервер
python3 manage.py runserver