/ #python #web 

Встановлення зв'язки Django та MySQL на Debian 9

Встановлення Django

  1. Встановлюємо Python та додатковий інструментарій apt install python3 python3-pip python3-venv
  2. Створюємо папку для проекту та віртуальне середовище mkdir myproject cd myproject python3 -m venv venv source venv/bin/activate
  3. Встановлюємо Django та перевыряємо встановлену версію python3 -m pip install Django python -m django --version
  4. Створюємо новий проект django-admin startproject myproject

З’єднання з MySQL

  1. Встановлюємо 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
  2. Створюємо базу данних CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
  3. Встановлюємо 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
    
  4. Редагуэмо файл ~/myproject/myproject/settings.py:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'test',
            'USER': 'test',
            'PASSWORD': 'password',
            'HOST': 'localhost',
            'PORT': '',
        }
    }
    
  5. Створюємо і застосовуємо міграції

    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
    
  6. Створюємо адміністратора

    python3 manage.py createsuperuser
    
  7. Запускаємо сервер

    python3 manage.py runserver
    
Author

Олександр Бобилєв

Залишаю собі право використовувати ненормативну (але інформативну) лексику там, де звичайні слова втрачають сенс і не відображають всієї палітри почуттів, від споглядання навколишньої дійсності.