CRUD com Python - #10 Deploy com MySQL
17/01/2021Na 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