Pular para o conteúdo

Como Criar uma Loja Virtual em Python: Tutorial para Iniciantes

[

Introdução

O Python é uma linguagem de programação versátil e poderosa que pode ser usada para criar uma ampla variedade de aplicativos, incluindo plataformas de comércio eletrônico. Neste tutorial abrangente, vamos explorar como criar uma loja online usando o Python.

Resumo

Neste tutorial, você aprenderá a construir uma aplicação de comércio eletrônico usando Python. Abordaremos desde a configuração do ambiente de desenvolvimento até a implementação das principais funcionalidades de uma loja online, como cadastro de usuários, criação de produtos, gerenciamento de carrinho de compras e processamento de pagamentos.

Requisitos

Antes de começar, certifique-se de ter instalado o Python em sua máquina. Se você ainda não o tiver, acesse o site oficial do Python (https://www.python.org/) e faça o download da versão mais recente.

Além do Python, você precisará instalar algumas bibliotecas adicionais para ajudar no desenvolvimento da aplicação de comércio eletrônico. As principais bibliotecas que utilizaremos são Django e Stripe. Para instalar essas bibliotecas, execute os seguintes comandos em seu terminal:

pip install django
pip install stripe

Configuração do Projeto

Agora que temos o Python e as bibliotecas necessárias instalados, podemos configurar nosso projeto de comércio eletrônico.

  1. Crie uma nova pasta para o projeto e acesse-a por meio do terminal.

  2. Dentro da pasta do projeto, crie um ambiente virtual digitando o seguinte comando:

python -m venv venv
  1. Ative o ambiente virtual usando o comando apropriado para o seu sistema operacional:
  • Windows:
venv\Scripts\activate
  • macOS/Linux:
source venv/bin/activate

Criação do Projeto Django

Agora que o ambiente virtual está ativo, podemos prosseguir com a criação do projeto Django.

  1. Digite o seguinte comando para criar um novo projeto Django:
django-admin startproject ecommerce
  1. Acesse a pasta do projeto usando o comando:
cd ecommerce
  1. Execute o servidor de desenvolvimento do Django para testar se tudo está funcionando corretamente:
python manage.py runserver
  1. Abra o navegador e acesse o endereço http://localhost:8000 para verificar se a página de boas-vindas do Django é exibida.

Criação do Aplicativo de Comércio Eletrônico

Agora que o projeto Django foi criado com sucesso, podemos começar a desenvolver nosso aplicativo de comércio eletrônico.

  1. Digite o seguinte comando para criar um novo aplicativo no projeto Django:
python manage.py startapp store
  1. No arquivo settings.py, adicione o aplicativo store à lista de aplicativos instalados:
INSTALLED_APPS = [
...
'store',
...
]
  1. Crie um modelo Product dentro do arquivo store/models.py para representar os produtos da loja:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
description = models.TextField()
image = models.ImageField(upload_to='products/')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
  1. Execute o comando a seguir para criar as migrações do banco de dados:
python manage.py makemigrations
python manage.py migrate
  1. Adicione as rotas necessárias para o aplicativo no arquivo urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
# Outras rotas
]
  1. Crie um arquivo views.py dentro da pasta store e adicione as seguintes importações e a função home:
from django.shortcuts import render
from .models import Product
def home(request):
products = Product.objects.all()
return render(request, 'store/home.html', {'products': products})
  1. Crie uma pasta templates na pasta store. Dentro da pasta templates, crie uma pasta store e adicione um arquivo home.html com o seguinte conteúdo:
{% for product in products %}
<div>
<h3>{{ product.name }}</h3>
<img src="{{ product.image.url }}" alt="{{ product.name }}">
<p>Preço: R$ {{ product.price }}</p>
<p>{{ product.description }}</p>
</div>
{% endfor %}
  1. Reinicie o servidor de desenvolvimento do Django para carregar as alterações e abra o navegador para visualizar a página inicial da loja.

Implementação do Cadastro de Usuários

Agora que a página inicial da loja está funcionando corretamente, podemos avançar e implementar o cadastro de usuários.

  1. Crie um novo modelo User no arquivo store/models.py:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
  1. Execute as migrações necessárias para adicionar o novo modelo do usuário:
python manage.py makemigrations
python manage.py migrate
  1. Adicione as configurações de autenticação no arquivo settings.py:
AUTH_USER_MODEL = 'store.User'
  1. Crie um arquivo forms.py dentro da pasta store e adicione as importações e a classe UserCreationForm:
from django import forms
from .models import User
class UserCreationForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ('username', 'password')
  1. No arquivo views.py, adicione as importações e a função register:
from django.shortcuts import render, redirect
from .forms import UserCreationForm
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'store/register.html', {'form': form})
  1. Crie um arquivo register.html dentro da pasta templates/store:
<form method="POST" action="">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Criar Conta</button>
</form>
  1. Adicione a rota para o cadastro de usuários no arquivo urls.py do aplicativo:
from django.urls import path
from . import views
urlpatterns = [
...
path('register/', views.register, name='register'),
...
]
  1. Reinicie o servidor de desenvolvimento do Django e acesse a rota http://localhost:8000/register para testar o cadastro de usuários.

Gerenciamento de Carrinho de Compras

Agora que os usuários podem se registrar em nossa loja online, vamos implementar o gerenciamento do carrinho de compras.

  1. Crie um novo modelo CartItem no arquivo store/models.py:
from django.db import models
from .models import Product, User
class CartItem(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
def __str__(self):
return self.product.name
  1. Execute as migrações necessárias para adicionar o novo modelo do carrinho de compras:
python manage.py makemigrations
python manage.py migrate
  1. Adicione uma rota para adicionar produtos ao carrinho de compras no arquivo urls.py:
from django.urls import path
from . import views
urlpatterns = [
...
path('add-to-cart/<int:product_id>/', views.add_to_cart, name='add_to_cart'),
...
]
  1. No arquivo views.py, adicione as importações e a função add_to_cart:
from django.shortcuts import redirect
from .models import Product, CartItem
def add_to_cart(request, product_id):
product = Product.objects.get(id=product_id)
cart_item = CartItem(product=product, user=request.user)
cart_item.save()
return redirect('home')
  1. Reinicie o servidor de desenvolvimento do Django e acesse a rota http://localhost:8000/add-to-cart/1 para adicionar um produto ao carrinho de compras.

Processamento de Pagamentos

Por fim, vamos implementar o processamento de pagamentos em nossa loja online usando a biblioteca Stripe.

  1. Faça o cadastro no site do Stripe e obtenha as chaves API necessárias para a integração.

  2. No arquivo settings.py, adicione as chaves API obtidas como variáveis de ambiente:

STRIPE_PUBLISHABLE_KEY = os.environ.get('STRIPE_PUBLISHABLE_KEY')
STRIPE_SECRET_KEY = os.environ.get('STRIPE_SECRET_KEY')
  1. No arquivo views.py, adicione as importações e a função checkout:
import stripe
from django.conf import settings
stripe.api_key = settings.STRIPE_SECRET_KEY
def checkout(request):
cart_items = CartItem.objects.filter(user=request.user)
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=[
{
'price_data': {
'currency': 'brl',
'unit_amount': item.product.price * 100,
'product_data': {
'name': item.product.name,
},
},
'quantity': item.quantity,
}
for item in cart_items
],
mode='payment',
success_url='http://localhost:8000/success/',
cancel_url='http://localhost:8000/cancel/',
)
return redirect(session.url)
  1. Adicione as rotas para o processo de pagamento no arquivo urls.py:
from django.urls import path
from . import views
urlpatterns = [
...
path('checkout/', views.checkout, name='checkout'),
path('success/', views.success, name='success'),
path('cancel/', views.cancel, name='cancel'),
...
]
  1. Reinicie o servidor de desenvolvimento do Django e acesse a rota http://localhost:8000/checkout para iniciar o processo de pagamento.

Conclusão

Neste tutorial, você aprendeu a construir uma aplicação de comércio eletrônico usando Python. Abordamos desde a configuração do ambiente de desenvolvimento até a implementação das principais funcionalidades de uma loja online, como cadastro de usuários, criação de produtos, gerenciamento de carrinho de compras e processamento de pagamentos. Espero que isso tenha sido útil e que você possa aplicar os conceitos aprendidos em seus próprios projetos.

FAQs (Perguntas frequentes)

1. Posso usar outras bibliotecas Python para construir uma loja online?

Sim, existem várias bibliotecas Python disponíveis que podem ser usadas para criar uma loja online. No entanto, neste tutorial, concentramos no uso do Django e do Stripe.

2. Como posso adicionar mais funcionalidades à minha loja online?

Você pode adicionar mais funcionalidades à sua loja online, como sistema de busca, filtros de produtos, avaliações de clientes, entre outros. Basta explorar a documentação do Django e de outras bibliotecas relevantes para implementar as funcionalidades desejadas.

3. É possível personalizar a aparência da minha loja online?

Sim, é possível personalizar a aparência da sua loja online. O Django suporta a utilização de templates para renderizar as páginas HTML, permitindo que você customize a aparência e o layout de acordo com suas preferências.

4. Qual é o benefício de usar a biblioteca Stripe para processar pagamentos?

A biblioteca Stripe oferece uma interface simplificada para o processamento de pagamentos online. Ela permite que você aceite pagamentos com cartões de crédito e débito de forma segura e confiável, sem a necessidade de lidar diretamente com informações sensíveis do cliente.

5. Posso hospedar minha loja online em um servidor de produção?

Sim, você pode hospedar sua loja online em um servidor de produção. Existem muitas opções de hospedagem disponíveis, como serviços de hospedagem compartilhada, servidores virtuais privados (VPS) e plataformas de nuvem. Certifique-se de escolher um provedor confiável e seguir as melhores práticas de segurança para proteger sua aplicação.