Neste projeto foi criada uma API e um banco de dados para um site de notícias. A aplicação permite fazer o CRUD (Create, Read, Updated e Delete) através do forms e templates Django ou utilizando o DRF(Django Rest Framework).
- Django;
- DRF (Django Rest Framework);
- MySQL;
- Docker;
Dependências Necessárias
1. Este projeto usa dependências que não são funcionais em todas as versões do Python. Por isso, recomendamos que seu Python esteja na versão `3.10.0` ou superior. Você pode usar o `Pyenv`, basta seguir nosso tutorial sobre [instalação e uso do Pyenv](https://app.betrybe.com/learn/course/5e938f69-6e32-43b3-9685-c936530fd326/module/f04cdb21-382e-4588-8950-3b1a29afd2dd/section/aa76abc8-b842-40d9-b5cc-baa960952129/lesson/0fe67ea0-1046-4b55-a37c-44afcfa9ed0a).
⚠️ ATENÇÃO: NUNCA REMOVA VERSÕES ANTIGAS INSTALADAS DO PYTHON. SEU SISTEMA OPERACIONAL PODE DEPENDER DELAS!⚠️
- Para conseguir instalar a dependência
mysqlclient
você precisa garantir a existência de algumas bibliotecas no seu sistema operacional:
- Debian/Ubuntu
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pkg-config
- Mac
brew install mysql pkg-config
- Primeiro abra o terminal e crie um diretório com o comando mkdir:
mkdir projetos
- Entre no diretório que acabou de criar e clone o projeto:
cd projetos
git clone git@github.com:tryber/python-028-python-projeto-spotnews.git
- Crie o ambiente virtual
python3 -m venv .venv
- Ative o ambiente virtual
source .venv/bin/activate
- Instale as dependências no ambiente virtual
python3 -m pip install -r dev-requirements.txt
- Para rodar o MySQL via Docker execute os seguintes comandos na raiz do projeto:
docker build -t spotnews-db .
docker run -d -p 3306:3306 --name=spotnews-mysql-container -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=spotnews_database spotnews-db
- Entre no diretório do projeto e rode o serviço com o comando:
python3 manage.py runserver
- Crie as migrações:
python3 manage.py makemigrations
- Crie as tabelas no banco:
python3 manage.py migrate
- Popule o banco
python3 manage.py runscript seeds