Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

CRUD com Python - #10 Deploy com MySQL

17/01/2021

Na aula de hoje iremos fazer o deploy da nossa aplicação utilizando o Python com Django e o banco de dados MySQL.

Para fazer o deploy você precisará de uma conta no Heroku.

Vamos precisar também de 03 softwares:
- Heroku Cli
- Git
- MySQL Workbench

Criamos uma aplicação no dashboard do Heroku.

Vamos seguir os comandos abaixo:

cd c:/Python
heroku login
pip install django_heroku

Vamos acessar o arquivo project/settings.py e incluir os códigos:

import django_heroku
django_heroku.settings(locals())

Voltando ao terminal:

pip freeze > requirements.txt

No arquivo requirements.txt vamos criar o requisito gunicorn:

asgiref==3.2.7
dj-database-url==0.5.0
Django==3.0.5
django-heroku==0.3.1
mysqlclient==1.4.6
psycopg2==2.8.5
pytz==2019.3
sqlparse==0.3.1
whitenoise==5.0.1
gunicorn==20.0.4

Em seguida criaremos o arquivo Procfile (sem extensão)

web: gunicorn project.wsgi

No terminal:

git init
heroku git:remote -a webdesign-em-foco
git add .
git commit -m "Primeiro upload"
git push heroku master

Para enviar o banco de dados vamos criar o add-on cleardb dentro da página do Heroku. Posteriormente vamos ao link settings >> reveal configs var e pegaremos o código:

mysql://393948949:9383939@us.host/heroku_dkkdid?

O código acima traz o tipo do banco://usuario:senha@host/nome_do_banco

Esses dados deverão ser substituidos em project/settings:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'heroku_129a8ecb4804d59',
        'PORT': '3306',
        'HOST': 'us-cdbr-iron-east-01.cleardb.net',
        'USER': 'bab970df28cb63',
        'PASSWORD': '37111d26',
    }
}

Vamos enviar via git novamente.

Agora no MySQLWorkbench iremos criar um banco com os dados coletados da sua aplicação, como exemplo acima.

No PHPMyAdmin iremos exportar o banco e importar no MySQLWorkbench.

Caso seu deploy dê erro de versão do mysqlclient vamos precisar rodar o comando:

pip uninstall PyMysql
pip freeze > requirements.txt

Adicionar novamente o gunicorn no requirements.txt

asgiref==3.2.7
dj-database-url==0.5.0
Django==3.0.5
django-heroku==0.3.1
mysqlclient==1.4.6
psycopg2==2.8.5
pytz==2019.3
sqlparse==0.3.1
whitenoise==5.0.1
gunicorn==20.0.4

Retirar o PyMysql dentro de project/settings

Para baixar o MySqlclient atualizado acesse o link: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

Baixe o arquivo de acordo com sua versão e o coloque na raíz do projeto.

pip install mysqlclient-1.4.6-cp38-cp38-win32.whl

No código acima você deve colocar o nome do arquivo que você baixou de acordo com a sua versão.


Dicas

Verifique se o mysqlclient está constando no requiments.txt com a devida versão após o == e sem nenhum @. Após isso, repita o procedimento git add. ...

� importante também verificar seus arquivos javascript para verificar se o getRoot() e as rotas estão direcionando para a url online.

Não esqueça de rodar também o migrate

python manage.py migrate

Por hoje é só! Sucesso nos códigos e na vida!

Precisa de um professor? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

CRUD com Python - #9 Deploy
Na aula de hoje iremos fazer o deploy da nossa aplicação utilizando o Python com Django e o banco de dados SQLite.
Saiba mais!
Data Science and Machine Learning - #1 Introdução
Na aula de hoje iniciamos o curso completo de Data Science e Machine Learning com a linguagem de programação Python.
Saiba mais!
Python
Nesta seção aprofundaremos os conhecimentos sobre uma das linguagens em maior ascenção no mercado, o Python.
Saiba mais!