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, Render, Cloudinary, Corsheaders, Django-Extensions, Django-Filter, dotenv, dj-database-url, drf-spectacular, gunicorn, netifaces, rest-framework-simplejwt, whitenoise e passage.id
Esse template já está pronto para ser utilizado em produção, com o Render 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.
O projeto Django criado chama-se app
e a aplicação Django criada chama-se core
. O projeto já vem com um modelo de usuário customizado, com autenticação pelo passage.id
. Arquivos estáticos, como fotos, podem ser armazenados no Cloudinary.
O projeto também já vem com a documentação da API, gerada automaticamente pelo Swagger, e com a formatação de código Python, feita pelo black e pelo isort.
-
Certifique-se de ter o Python instalado em seu sistema.
-
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
emCreate a new repository
. - Preencha as informações solicitadas:
Owner
: <seu usuário no GitHub>Repository name
:livraria
- Click no botão
Create repository
.
-
Abra o projeto no vscode e execute o terminal.
-
Crie um ambiente virtual usando o PDM:
pdm install
-
Crie o arquivo .env, a partir do arquivo .env.exemplo, e configure as variáveis de ambiente:
cp .env.exemplo .env
-
Execute o servidor de desenvolvimento:
pdm run dev
-
Acesse a API em http://localhost:19003/api/
A documentação completa dos endpoints da API e exemplos de uso estão disponíveis na Documentação da API.
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 omigrate
, executa omakemigrations
. Depois de executar omigrate
, executa ograph_models
, atualizando o diagrama de classes dos modelos do projeto.- Para mais detalhes, consulte o arquivo
pyproject.toml
, na seção[tool.pdm.scripts]
.
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.
- Render: Ferramenta de deploy de aplicações backend.
- Cloudinary: Serviço de armazenamento de arquivos estáticos em nuvem.
- Corsheaders: Pacote 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 comandograph_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
. - dj-database-url: Pacote para configurar o banco de dados a partir de uma URL.
- drf-spectacular: Pacote para geração de documentação de APIs REST com o Swagger.
- gunicorn: 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.
- passage.id: Pacote para autenticação de usuários.
Este projeto está licenciado sob a Licença GPL, uma licença de software livre.