Django图书商城系统实战开发-实现商品管理

news/2025/2/19 10:29:12

Django图书商城系统实战开发 - 实现商品管理

在本教程中,我们将使用Django框架来实现一个简单的图书商城系统,并重点讨论如何实现商品管理功能。此外,我们还将介绍如何使用Markdown格式来写博客,并将其集成到我们的图书商城系统中。

介绍

Django是一个强大的Python Web框架,被广泛应用于开发各种类型的Web应用程序,包括电子商务平台。图书商城系统是一个常见的示例,涉及许多常见的Web开发需求,例如用户认证、商品管理、购物车功能等。

在本教程中,我们将着重讨论商品管理功能。商品管理是任何电子商务系统的核心,它允许管理员对商城中的商品进行创建、编辑、删除和展示等操作。我们将使用Django的模型和视图来处理这些操作,并通过简单的界面让管理员能够轻松管理商品。

准备工作

在开始之前,确保您已经安装了Python和Django。您可以通过以下命令检查是否已安装:

python --version
django-admin --version

如果以上命令成功执行并显示正确的版本号,则说明您已正确安装了Python和Django。

创建Django项目和应用

首先,让我们创建一个新的Django项目和一个名为bookstore的应用程序。打开命令行终端并执行以下命令:

django-admin startproject mybookstore
cd mybookstore
python manage.py startapp bookstore

以上命令将创建一个名为mybookstore的Django项目和一个名为bookstore的应用程序。

定义数据模型

在我们开始实现商品管理功能之前,我们首先需要定义商品的数据模型。在bookstore应用程序的models.py文件中,添加以下代码:

from django.db import models


class Category(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name


class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    description = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

以上代码定义了两个模型:CategoryBookCategory模型用于存储商品分类信息,Book模型用于存储商品详细信息,并与Category模型建立了一对多的关系。

创建数据库

在定义完数据模型后,我们需要通过Django的迁移功能自动生成数据库表。在命令行终端中执行以下命令:

python manage.py makemigrations
python manage.py migrate

以上命令将自动生成对应的迁移文件,并在数据库中创建相应的表。

创建商品管理视图

接下来,我们将实现商品管理的视图部分。在bookstore应用程序的views.py文件中,添加以下代码:

from django.shortcuts import render
from .models import Book


def book_list(request):
    books = Book.objects.all()
    return render(request, 'bookstore/book_list.html', {'books': books})

以上代码定义了一个名为book_list的视图函数,它从数据库中获取所有的商品,并将其传递给一个模板文件进行展示。

创建商品列表模板

bookstore应用程序的templates目录下,创建一个名为book_list.html的模板文件,并添加以下代码:

{% for book in books %}
    <div>
        <h2>{{ book.title }}</h2>
        <p>Author: {{ book.author }}</p>
        <p>Price: {{ book.price }}</p>
        <p>Description: {{ book.description }}</p>
        <p>Category: {{ book.category }}</p>
    </div>
{% endfor %}

Django图书商城系统实战开发 - 实现商品管理

介绍

在本文中,我们将实现一个基于Django的图书商城系统,重点是实现商品管理功能。我们将使用Django框架来构建整个应用程序,并使用SQLite数据库来存储商品信息。

本文将以步骤指导您完成以下任务:

  1. 设置Django项目和应用程序
  2. 创建商品模型和数据库
  3. 实现商品列表页面
  4. 实现商品添加页面
  5. 实现商品编辑和删除功能
  6. 配置URL路由和运行项目

步骤1:设置Django项目和应用程序

首先,确保您已经在系统中安装了Django。如果尚未安装,请在命令行中运行以下命令进行安装:

pip install django

创建一个名为mybookstore的Django项目:

django-admin startproject mybookstore

接下来,进入项目目录:

cd mybookstore

创建一个名为bookstore的Django应用程序:

python manage.py startapp bookstore

现在,我们已经设置好了Django项目和应用程序的基本结构。

步骤2:创建商品模型和数据库

bookstore应用程序的models.py文件中,定义一个名为Book的商品模型,包含商品的标题、作者、价格、描述和分类字段:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    description = models.TextField()
    category = models.CharField(max_length=50)

    def __str__(self):
        return self.title

这个模型定义了一个名为Book数据库表,它有五个字段:titleauthorpricedescriptioncategory__str__方法用于在对象的字符串表示中返回title字段的值。

接下来,运行以下命令生成数据库迁移文件:

python manage.py makemigrations

然后,运行数据库迁移命令以创建实际的数据库表:

python manage.py migrate

现在,我们已经创建了一个名为Book数据库表。

步骤3:实现商品列表页面

bookstore应用程序的views.py文件中,定义一个名为book_list的视图函数,用于渲染商品列表页面:

from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()
    return render(request, 'bookstore/book_list.html', {'books': books})

这个视图函数从数据库中检索所有的商品,并将它们传递给book_list.html模板进行渲染。

现在,我们需要创建一个名为book_list.html的模板,在bookstore应用程序的templates/bookstore目录下。在模板中,我们将使用Django的模板语言来动态显示商品的相关信息:

{% for book in books %}
    <div>
        <h2>{{ book.title }}</h2>
        <p>Author: {{ book.author }}</p>
        <p>Price: {{ book.price }}</p>
        <p>Description: {{ book.description }}</p>
        <p>Category: {{ book.category }}</p>
    </div>
{% endfor %}

在循环中,我们遍历所有的商品,并显示它们的标题、作者、价格、描述和分类。

步骤4:实现商品添加页面

bookstore应用程序的views.py文件中,定义一个名为book_add的视图函数,用于渲染商品添加页面:

from django.shortcuts import render, redirect
from .forms import BookForm

def book_add(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('book_list')
    else:
        form = BookForm()
    return render(request, 'bookstore/book_add.html', {'form': form})

这个视图函数处理POST请求时,将从表单中获取商品信息,并将其保存到数据库中。如果表单数据有效,则重定向到商品列表页面。否则,重新渲染添加页面,并显示表单错误信息。

接下来,我们需要创建一个名为book_add.html的模板,在bookstore应用程序的templates/bookstore目录下。在模板中,我们将使用Django的表单功能来生成商品添加表单:

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Add Book">
</form>

这个模板中的form.as_p将生成一个简单的包含表单字段的HTML表单。

步骤5:实现商品编辑和删除功能

bookstore应用程序的views.py文件中,定义两个视图函数:book_editbook_delete,用于渲染商品编辑和删除页面:

from django.shortcuts import get_object_or_404

def book_edit(request, pk):
    book = get_object_or_404(Book, pk=pk)
    if request.method == 'POST':
        form = BookForm(request.POST, instance=book)
        if form.is_valid():
            form.save()
            return redirect('book_list')
    else:
        form = BookForm(instance=book)
    return render(request, 'bookstore/book_edit.html', {'form': form})

def book_delete(request, pk):
    book = get_object_or_404(Book, pk=pk)
    if request.method == 'POST':
        book.delete()
        return redirect('book_list')
    return render(request, 'bookstore/book_delete.html', {'book': book})

这些视图函数使用get_object_or_404方法获取要编辑或删除的商品对象。如果是POST请求,它们将更新或删除商品并重定向到商品列表页面。

创建book_edit.htmlbook_delete.html模板,并在相应的模板中显示编辑和删除表单。

步骤6:配置URL路由和运行项目

最后,我们需要配置URL路由,将这些视图函数与相应的URL模式匹配起来。

mybookstore项目的urls.py文件中,添加以下代码:

from django.urls import path
from bookstore.views import book_list, book_add, book_edit, book_delete

urlpatterns = [
    path('books/', book_list, name='book_list'),
    path('books/add/', book_add, name='book_add'),
    path('books/edit/<int:pk>/', book_edit, name='book_edit'),
    path('books/delete/<int:pk>/', book_delete, name='book_delete'),
]

这些URL模式将分别匹配商品列表、商品添加、商品编辑和商品删除页面,并将相应的视图函数与之关联。

现在,我们可以运行Django开发服务器,并访问我们的图书商城系统了:

python manage.py runserver

在浏览器中访问http://localhost:8000/books/,您将看到商品列表页面。您可以添加、编辑和删除商品,并在列表页面上看到更新后的结果。

结论

在本文中,我们实现了一个基于Django的图书商城系统,并重点介绍了商品管理功能。通过学习这个实战示例,您可以了解如何使用Django框架来构建功能强大的Web应用程序,并通过操作数据库来实现商品的增加、编辑和删除功能。

虽然本文只涵盖了商品管理的基本功能,但您可以根据自己的需求扩展和改进这个系统。希望您通过这个实例能够提升对Django开发的理解和能力。

文章来源:https://blog.csdn.net/qq_22593423/article/details/132247098
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.niftyadmin.cn/n/4941911.html

相关文章

【100天精通python】Day35:一文掌握GUI界面编程基本操作

目录 专栏导读 1 GUI 编程概述 1.1 为什么需要GUI&#xff1f; 1.2 常见的GUI编程工具和库 1.3 GUI应用程序的组成和架构 2 使用Tkinter 库 进行GUI编程 2.1 使用Tkinter库进行GUI编程的基本流程 2.2 使用Tkinter库进行GUI编程 2.2.1 导入Tkinter库 2.2.2 添加标签和…

C++实现量子计算

什么是量子计算 量子计算利用和控制量子物理系​​统中的量子位&#xff08;或量子比特&#xff09;来执行计算操作。在量子计算中&#xff0c;量子位可以处于多种可能的状态之一&#xff0c;而不仅仅是0或1。这种多态性使得量子计算机可以处理比传统计算机更复杂的问题&#x…

注意力机制-基础

注意力机制-基础 基础部分比较简单&#xff0c;全是搬运&#xff0c;主要介绍几个例子。 主要是搬运来的&#xff1a;动手学深度学习 心理学 人类的注意力是有限的、有价值和稀缺的资源。而环境中的干扰注意力的信息却并不少。 比如人类的视觉神经系统大约每秒收到 位的信息…

QT使用QML实现地图绘制虚线

QML提供了MapPolyline用于在地图上绘制线段&#xff0c;该线段是实线&#xff0c;因此我使用Canvas自定义绘制的方式在地图上绘制线段&#xff0c;如图&#xff1a; 鼠标在地图上点击后&#xff0c;在点击位置添加图标 &#xff0c;当有多个图标被添加到地图上后&#xff0c;计…

数据库的新工具datagrip

datagrip的安装&#xff08;一路next即可&#xff09; 首先&#xff0c;双击datagrip安装包&#xff0c;会出现下面的界面&#xff0c;然后直接点击next 继续点击next 选中tatagrip&#xff0c;然后在点击next 点击install 勾选datagrip&#xff0c;然后在点击finish 直接点击…

图扑数字孪生智慧乡村综合管控平台

数字乡村是伴随网络化、信息化和数字化在农业农村经济社会发展中的应用&#xff0c;既是乡村振兴的战略方向&#xff0c;也是建设数字中国的重要内容。为了进一步提升乡村治理智能化、专业化水平&#xff0c;解决建设顶层缺失、数据孤岛等问题&#xff0c;数字孪生技术被广泛应…

C语言编程:最小二乘法拟合直线

本文研究通过C语言实现最小二乘法拟合直线。 文章目录 1 引入2 公式推导3 C语言代码实现4 测试验证5 总结 1 引入 最小二乘法&#xff0c;简单来说就是根据一组观测得到的数值&#xff0c;寻找一个函数&#xff0c;使得函数与观测点的误差的平方和达到最小。在工程实践中&…

Python爬虫——scrapy_工作原理

引擎向spiders要url引擎把将要爬取的url给调度器调度器会将url生成的请求对象放入到指定的队列中从队列中出队一个请求引擎将请求交给下载器进行处理下载器发送请求获取互联网数据下载器将数据返回给引擎引擎将数据再次给到spidersspiders通过xpath解析该数据&#xff0c;得到数…