Bootstrap 5 Portfolio Template For Developers

Creación de una Tienda en Línea con Django: Implementación de un Sistema de Registro y Gestión de Productos

Another post by Fabianijg.dev

En este artículo, vamos a sumergirnos en el emocionante mundo de la creación de una tienda en línea utilizando Django, uno de los frameworks web más populares en Python. Vamos a explorar cómo implementar un sistema de registro de usuarios y una funcionalidad de gestión de productos, todo basado en el proyecto Freshcart. A lo largo de este artículo, proporcionaremos explicaciones detalladas y fragmentos de código que te guiarán en el proceso.

Parte 1: Sistema de Registro de Usuarios

Comencemos por implementar un sistema de registro de usuarios que permita a los visitantes crear cuentas en nuestra tienda en línea. Aquí está el código para las vistas y plantillas involucradas:


# views.py

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login, authenticate
from django.shortcuts import render, redirect

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('home')
    else:
        form = UserCreationForm()
    return render(request, 'registration/register.html', {'form': form})


<!-- register.html -->

{% extends 'base.html' %}
{% block content %}
  <h2>Registrarse</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Registrarse</button>
  </form>
{% endblock %}


Este código implementa una vista de registro que utiliza UserCreationForm de Django para manejar el proceso de registro. La plantilla register.html muestra el formulario de registro.

Parte 2: Gestión de Productos

Ahora, implementemos la funcionalidad de gestión de productos en nuestra tienda en línea. A continuación, se muestra cómo podemos crear y editar productos utilizando Django:


# views.py

from .models import Product
from .forms import ProductForm

def create_product(request):
    if request.method == 'POST':
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            product = form.save()
            # Realizar acciones adicionales si es necesario
            return redirect('product_list')
    else:
        form = ProductForm()
    return render(request, 'product/create_product.html', {'form': form})


# forms.py

from django import forms
from .models import Product

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = ['name', 'category', 'price', 'description', 'images']


<!-- create_product.html -->

{% extends 'base.html' %}
{% block content %}
  <h2>Crear Producto</h2>
  <form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Crear Producto</button>
  </form>
{% endblock %}


Este código crea una vista para crear productos utilizando un formulario ProductForm. La plantilla create_product.html muestra el formulario y permite a los usuarios crear nuevos productos.

Conclusión

A través de este artículo, hemos explorado cómo implementar un sistema de registro de usuarios y una funcionalidad de gestión de productos en una tienda en línea utilizando Django. Los fragmentos de código proporcionados te servirán como punto de partida para construir tu propia tienda en línea y personalizarla según tus necesidades. Django ofrece herramientas poderosas que facilitan el desarrollo de aplicaciones web robustas y funcionales, lo que lo convierte en una excelente elección para proyectos de comercio electrónico como Freshcart.

Recuerda que este es solo el comienzo de lo que puedes lograr con Django. A medida que sigas explorando y aprendiendo, podrás agregar más características, mejorar la experiencia del usuario y crear una tienda en línea impresionante y exitosa.

[enlace al código original del proyecto Freshcart]: (https://freshcart.fabianijg.dev)

View Live Demo View on GitHub

"Walking on water and developing software from a specification are easy if both are frozen."

Edward V Berard

Fabián

I'm a full stack developer with a passion for software development and UX. You can follow me via the various channels below:
comments powered by Disqus

Interested in hiring me for your project?

Looking for an experienced full-stack developer to build your web app or ship your software product? To start an initial chat, just drop me an email at fabianijgonzalez@gmail.com or use the form on the contact page.