Aula 08 – Configurando o Django com mysql no windows

Aula 08 – Curso de Django

Criando uma primeira aplicação com Django e mysql no windows

Configurando o Django para trabalhar com o mysql

https://docs.djangoproject.com/pt-br/1.11/intro/tutorial02/

Aplicação Django com mysql

Configurando o Django com mysql

Primeira coisa, adicionar o caminho da pasta bin do mysql server ao Path do windows

Vá em painel de controle, sistemas, configurações avançadas do sistema, variáveis de ambiente, aí então você vai criar as variáveis de ambientes, MYSQL_HOME, com o caminho de onde seu mysql está instalado, é a pasta do m, normalmente o caminho é:

C:\Program Files\MySQL\MySQL Server 5.7\bin

Mas, é preciso identificar se no seu sistema também é esse o caminho.

Agora você precisa adicionar essa variável de ambiente na variável Path do seu sistema.

A variável Path do seu sistema tem o caminho de todos os programas que você tem no seu computador.

Você vai até o final da lista que Path guarda, a lista é separada por ponto e vírgula, você vai acrescentar um ponto e vírgula no final se não tiver, e em seguida adicionar a variável MYSQL_HOME.

Vamos dizer que no final da variável Path tenha:

…….;C:\Ruby24-x64\bin; C:\Users\toti.cavalcanti\AppData\Roaming\npm;

Você vai acrescentar no final, a variável MYSQL_HOME, ficando assim:

C:\Ruby24-x64\bin; C:\Users\toti.cavalcanti\AppData\Roaming\npm;%MYSQL_HOME%;

Feche o cmd se tiver aberto e abra outro, digite de qualquer pasta:
mysql -u root -p
-u root pra entrar como usuário root do mysql e o -p pra pedir a password, você vai digitar a password definida quando você instalou o mysql no windows e dá enter, o prompt vai mudar para o prompt do mysql.

Pode dá um exit pra sair.

Agora vamos registrar nossa app polls no settings.py.

Depois de criar uma app, é preciso registrá-la no arquivo de configuração do projeto, o settings.py:

# Application definition
INSTALLED_APPS = [

      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'polls',

]

INSTALLED_APPS  possui os nomes de todas as aplicações Django ativas para essa instância do Django.

Aplicações podem ser usadas em múltiplos projetos, e você pode empacotá-las e distribuí-las para uso em outros projetos.

As aplicações que já estão lá por padrão, são incluídas como uma conveniência já que são comuns em vários projetos.

Ainda no settings.py vamos mudar o TIME_ZONE e o LANGUAGE_CODE :


# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

Para:


# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/
LANGUAGE_CODE = 'pt-br'
TIME_ZONE = 'America/Sao_Paulo'
USE_I18N = True
USE_L10N = True
USE_TZ = True

 

Continuando no settings.py vamos mudar a configuração do DATABASE:


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',
    }
}

Vamos criar o banco de dados da app, para isso vamos entrar no console do mysql digitando:

mysql –u root –p

Dá enter, digita a senha e dá enter de novo.

O prompt muda para o mysql.

Agora vamos criar o banco de dados da app no mysql:

CREATE DATABASE db_mysite;

Algumas dessas aplicações fazem uso de pelo menos uma tabela no banco de dados, por isso, precisamos criar as tabelas no banco de dados antes de utilizá-las. Para isso rode o comando:

python manage.py migrate

Caso dê erro informando que não encontrou mysqlclient, tente o comando:

pip install mysqlclient

Depois execute novamente o:

python manage.py migrate
O comando migrate verifica a configuração em INSTALLED_APPS e cria a(s) tabela(s) do banco de dados necessária(s) de acordo com as configurações do banco de dados no seu arquivo mysite/settings.py e as migrações que venham com a app.

É mostrado uma mensagem para cada migração aplicada.

Obrigado

Até a próxima

4 thoughts on “Aula 08 – Configurando o Django com mysql no windows

  1. Raphel Felipe

    Parceiro, não consegui instalar o mysqlclient. Aparece esse erro:

    —————————————-
    Failed building wheel for mysqlclient
    Running setup.py clean for mysqlclient
    Failed to build mysqlclient
    Installing collected packages: mysqlclient
    Running setup.py install for mysqlclient … error
    Complete output from command r:\django\tenv\scripts\python.exe -u -c “import setuptools, tokenize;__file__=’c:\\users\\rapha\\appdata\\local\\temp\\pip-install-co1vxs\\mysqlclient\\setup.py’;f=getattr(tokenize, ‘open’, open)(__file__);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, __file__, ‘exec’))” install –record c:\users\rapha\appdata\local\temp\pip-record-xxw8x9\install-record.txt –single-version-externally-managed –compile –install-headers r:\django\tenv\include\site\python2.7\mysqlclient:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-2.7
    copying _mysql_exceptions.py -> build\lib.win-amd64-2.7
    creating build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win-amd64-2.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win-amd64-2.7\MySQLdb
    creating build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-2.7\MySQLdb\constants
    running build_ext
    building ‘_mysql’ extension
    creating build\temp.win-amd64-2.7
    creating build\temp.win-amd64-2.7\Release
    C:\Users\Rapha\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,3,12,’final’,0) -D__version__=1.3.12 “-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include” -IC:\Python27\include -Ir:\django\tenv\PC /Tc_mysql.c /Fobuild\temp.win-amd64-2.7\Release\_mysql.obj /Zl
    _mysql.c
    _mysql.c(29) : fatal error C1083: Cannot open include file: ‘mysql.h’: No such file or directory
    error: command ‘C:\\Users\\Rapha\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe’ failed with exit status 2

    —————————————-
    Command “r:\django\tenv\scripts\python.exe -u -c “import setuptools, tokenize;__file__=’c:\\users\\rapha\\appdata\\local\\temp\\pip-install-co1vxs\\mysqlclient\\setup.py’;f=getattr(tokenize, ‘open’, open)(__file__);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, __file__, ‘exec’))” install –record c:\users\rapha\appdata\local\temp\pip-record-xxw8x9\install-record.txt –single-version-externally-managed –compile –install-headers r:\django\tenv\include\site\python2.7\mysqlclient” failed with error code 1 in c:\users\rapha\appdata\local\temp\pip-install-co1vxs\mysqlclient\

    poderia me ajudar?

    1. toticavalcanti Post author

      Olá Raphael, o erro diz que não consegue abrir o arquivo de include mysql.h (fatal error C1083: Cannot open include file: ‘mysql.h’), tenta desinstalar o mysql, reinicia a máquina e reinstala ele.
      Outra coisa a fazer é verificar se a variável de ambiente do mysql (MYSQL_HOME), tá apontando pro diretório do mysql, que no meu caso é:
      C:\Program Files\MySQL\MySQL Server 5.7\bin\

      Sugiro que você refaça toda parte de criar a variável (MYSQL_HOME) e colocar no PATH do windows.

      Outra parte do erro diz:
      Failed building wheel for mysqlclient
      Running setup.py clean for mysqlclient
      Failed to build mysqlclient
      Installing collected packages: mysqlclient
      Running setup.py install for mysqlclient … error

      Dá uma verificada se o PIP está instalado:
      pip -V

      ou
      which pip

      Se não estiver instalado, instale ele:
      Baixa o get-pip.py em:
      https://bootstrap.pypa.io/get-pip.py

      Coloca ele na pasta de scripts do python, no meu caso:
      C:\Users\toti.cavalcanti\AppData\Local\Programs\Python\Python36\Scripts\

      Pelo cmd, entre na pasta onde você colocou e roda ele com:
      python get-pip.py

      Se o PIP tiver instalado e continuar com o problema, tenta rodar:
      pip install -U wheel

      Qualquer coisa, entra em contato de novo.
      Abs,
      Toti

    2. toticavalcanti Post author

      Olá Raphael, acho que a sua instalação do mysql não tá legal, veja que o erro fala Cannot open include file: ‘mysql.h’: No such file or directory
      error, o arquivo mysql.h não tá sendo localizado. Desinstala o mysql, apaga a pasta dele, reinicia a máquina e reinstala.

      Depois roda o comando.
      pip install wheel
      Baixa o arquivo para seu sistema no link:
      http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

      Para o python 3.x:
      pip install mysqlclient-1.3.8-cp36-cp36m-win_amd64.whl
      Para o python 2.7:
      pip install mysqlclient-1.3.8-cp27-cp27m-win_amd64.whl

      Vê se resolve.
      Abs,
      Toti

  2. jallisson jallis

    solução usando esse comnado: pip install mysqlclient==1.3.4

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *