CRUD com Python - #7 Paginação e Busca
30/12/2020Nesse tutorial aprenderemos como realizar a paginação e a busca de dados no banco utilizando a linguagem de programação Python.
Páginas com Python
app/views.py
Vamos chamar o módulo paginator para facilitar o nosso trabalho com a separação dos dados em páginas:
def home(request):
data = {}
all = Carros.objects.all()
paginator = Paginator(all, 2)
pages = request.GET.get('page')
data['db'] = paginator.get_page(pages)
return render(request, 'index.html', data)
app/templates/index.html
No template index.html vamos chamar a div responsável pela paginação:
<div class="pagination">
{% if db.has_previous %}
<a href="?page={{db.previous_page_number}}"> < </a>
{% endif %}
{{db.number}}
{% if db.has_next %}
<a href="?page={{db.next_page_number}}"> > </a>
{% endif %}
</div>
Busca com Python
app/templates/index.html
Para incrementar a busca iremos construir um formulário na index para remessa dos dados via get:
<div class="col-8 m-auto pt-3 pb-2 text-center">
<form method="get">
<input type="text" id="search" name="search" class="form-control" placeholder="Buscar...">
</form>
</div>
app/views.py
Para implementar a busca na views:
def home(request):
data = {}
search = request.GET.get('search')
if search:
data['db'] = Carros.objects.filter(modelo__icontains=search)
else:
data['db'] = Carros.objects.all()
return render(request, 'index.html', data)
Então é isso! Espero que tenham gostado, sucesso nos códigos e na vida!
Do you need a teacher? webdesignemfoco@gmail.com
Posts Relacionados
CRUD com Python - #6 Delete e Ajax
Nessa videoaula trabalharemos com o delete utilizando o ajax para fornecer um maior dinamismo a nossa aplicação.
CRUD com Python - #8 Usando o MySQL
Nesta aula faremos o mesmo CRUD realizado anteriormente com SQLITE, agora com o banco de dados MySQL.