/fakestore-backend

A fakeStore REST API

Primary LanguagePython

Template de projeto Django com DRF e PDM

Esse é um template de projeto Django com DRF, PDM e muito mais. Ele já vem com algumas configurações e pacotes pré-instalados, como o PDM, Django, Django REST Framework, PostgreSQL, SQLite, Swagger, Black, isort, Fl0, Cloudinary, Corsheaders, Django-Extensions, Django-Filter, dotenv, drf-spectacular, gunicon, netifaces, rest-framework-simplejwt e whitenoise.

Esse template já está pronto para ser utilizado em produção, com o Fl0 e o PostgreSQL. Mas também pode ser utilizado em desenvolvimento, com o PDM e o SQLite.

O template também já vem com alguns arquivos de configuração pré-configurados, como:

  • pyproject.toml: Arquivo de configuração do PDM.
  • Procfile: Arquivo de configuração do Fl0.
  • settings.py: Arquivo de configuração do Django.
  • urls.py: Arquivo de configuração das rotas do Django.
  • wsgi.py: Arquivo de configuração do Gunicorn.
  • .env.exemplo: Arquivo de exemplo de configuração das variáveis de ambiente.
  • .gitignore: Arquivo de configuração do Git, para ignorar arquivos e diretórios.

O template também traz o usuário padrão modificado, com o login sendo feito com o e-mail e não com o username. Inclusões de campos, como telefone, data de nascimento e foto de perfil, podem ser feitas facilmente.

Instalação e Configuração

  1. Certifique-se de ter o Python instalado em seu sistema.

  2. Crie um novo projeto a partir desse template:

  • Acesse o template em https://github.com/marrcandre/template_django_pdm.
  • Clique no botão Use this template em Create a new repository.
  • Preencha as informações solicitadas:
    • Owner: <seu usuário no GitHub>
    • Repository name: livraria
  • Click no botão Create repository.
  1. Abra o projeto no vscode e execute o terminal.

  2. Crie um ambiente virtual usando o PDM:

    pdm install
    
  3. Crie o arquivo .env, a partir do arquivo .env.exemplo, e configure as variáveis de ambiente:

    cp .env.exemplo .env
    
  4. Execute o servidor de desenvolvimento:

    pdm run dev
    
  5. Acesse a API em http://localhost:19003/api/

Uso da API

A documentação completa dos endpoints da API e exemplos de uso estão disponíveis na Documentação da API.

Comandos Úteis

  • pdm run dev: Executa o servidor de desenvolvimento. Antes de executar o servidor, descobre o endereço IP da máquina e atualiza o arquivo .env com o endereço IP.
  • pdm run migrate: Executa as migrações do banco de dados. Antes de executar o migrate, executa o makemigrations. Depois de executar o migrate, executa o graph_models, atualizando o diagrama de classes dos modelos do projeto.

Detalhes do Projeto

Esse projeto utiliza os seguintes pacotes e tecnologias:

  • PDM: Gerenciador de pacotes e ambiente virtual para Python.
  • Django: Framework web de alto nível escrito em Python.
  • Django REST Framework: Framework para desenvolvimento de APIs REST com Django.
  • PostgreSQL: Banco de dados relacional, utilizado no ambiente de produção.
  • SQLite: Banco de dados relacional, utilizado no ambiente de desenvolvimento.
  • Swagger: Framework para documentação de APIs REST.
  • Black: Ferramenta de formatação de código Python.
  • isort: Ferramenta de ordenação de imports Python.
  • Fl0: Ferramenta de deploy de aplicações backend e banco de dados.
  • Cloudinary: Serviço de armazenamento de arquivos estáticos em nuvem.
  • Corsheaders: Pacote para habilitar o CORS em aplicações Django. O CORS é utilizado para permitir que aplicações frontend acessem a API.
  • Django-Extensions: Pacote com extensões para o Django, como o shell_plus, que permite acessar o shell do Django com todos os modelos importados e o comando graph_models, que gera um diagrama de classes dos modelos do projeto.
  • Django-Filter: Pacote para filtragem, ordenação e paginação de dados em APIs REST.
  • dotenv: Pacote para carregar variáveis de ambiente a partir de um arquivo .env.
  • drf-spectacular: Pacote para geração de documentação de APIs REST com o Swagger.
  • gunicon: Pacote para servir aplicações Django em produção.
  • netifaces: Pacote para obter o endereço IP da máquina.
  • rest-framework-simplejwt: Pacote para autenticação JWT em APIs REST.
  • whitenoise: Pacote para servir arquivos estáticos em aplicações Django.

Licença

Este projeto está licenciado sob a Licença GPL, uma licença de software livre.