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

Cadastro e Login com Python - #08 Deploy

14/02/2022

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

Data Science and Machine Learning - #34 SVM
No tutorial de hoje aprenderemos um novo modelo de generalização de dados, conhecido como SVM (Suport Vector Machine).
Saiba mais!
Data Science and Machine Learning - #35 K Means Clustering
Na aula de hoje aprenderemos como trabalhar com algorítimos não supervisionados, ou seja, aqueles onde não temos nenhum dado de parâmetro.
Saiba mais!
Python
Nesta seção aprofundaremos os conhecimentos sobre uma das linguagens em maior ascenção no mercado, o Python.
Saiba mais!