Ao invés de usar o pillow, qual biblioteca devo usar para trabalhar com vídeos? No caso bastaria usar "files" (request.FILES) ou teria alguma mudança?
Ao invés de usar o pillow, qual biblioteca devo usar para trabalhar com vídeos? No caso bastaria usar "files" (request.FILES) ou teria alguma mudança?
Olá André, tudo bem com você?
Peço desculpas pela demora em lhe responder.
Para fazermos o upload de um vídeo usando o formulário do Django não será necessário o uso de uma biblioteca específica, mas existe uma diferença quando ao campo de modelo usado, para arquivos de vídeos usaremos o campo forms.FileField()
.
O acesso ao arquivo de vídeo poderá ser feito através da requisição, desde que a requisição seja do tipo POST, poderemos acessar usando o método FILES
, request.FILES
.
Com o REST Framework a implementação de um campo para adicionarmos um vídeo a nossa API será semelhante à implementação do campo para imagens. Para isso, basta realizarmos algumas adições em nossos códigos, como apresentado abaixo.
No arquivo escola/models.py na classe Aluno
adicione o campo FileField()
como apresentado abaixo, que será responsável por receber o arquivo de vídeo.
class Aluno(models.Model):
video = models.FileField(blank=True)
Agora será necessário habilitarmos a exibição do campo nas classes serializadas, no arquivo escola/serializer.py nas classes AlunoSerializer
e AlunoSerializerV2
adicione o campo video
a lista fields
, como apresentado abaixo.
fields = ['id', 'nome', 'rg', 'cpf', 'data_nascimento', 'foto', 'video']
Após realizar as mudanças acima, salve os arquivos e crie uma nova migração para o banco de dados e realize a migração, basta executar os comandos abaixo no terminal aberto na pasta do projeto.
python manage.py makemigrations
python manage.py migrate
No arquivo setup/settings.py configure o caminho para os arquivos de mídia, adicionando as seguintes linhas de código.
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')
MEDIA_URL = '/media/'
Será necessário configurarmos o caminho da url para os arquivos de mídia, no arquivo setup/urls.py adicione as seguintes linhas de código.
urlpatterns = [
path('admin/', admin.site.urls),
path('', include(router.urls) ),
path('alunos/<int:pk>/matriculas/', ListaMatriculasAluno.as_view()),
path('cursos/<int:pk>/matriculas/', ListaAlunosMatriculados.as_view())
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Após adicionar essas mudanças, salve os arquivos e inicie o servidor com o comando python manage.py runserver
Nesse momento, acesse a API e o endereço que contêm os alunos cadastrados, ao final da página você encontrará o formulário contendo o campo Video. Basta adicionar os dados do aluno e adicionar uma foto e um vídeo aos respectivos campos e clicar em POST.
Formulário de cadastro
Usuário cadastrado com foto e vídeo
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.