返回

入门 Django:构建商品入库和查询系统的第一步

后端

Django入门:建立强大的Web应用程序

简介

对于初学者来说,Django是一个入门且功能强大的Python网络应用程序框架。它以其简洁、可扩展性和卓越的性能而著称,是构建各种Web应用程序的理想选择。从简单的博客到复杂的电子商务网站,Django已经成为网络开发领域的行业领先者。

入门:项目概述

为了展示Django的力量,我们将创建一个商品入库和查询系统。我们将利用Django的模型来构建数据表,安全地存储商品信息。接下来,我们将创建视图和模板,以处理用户请求并呈现交互式用户界面。用户将拥有添加、修改和删除商品的权限,还可以使用灵活的查询过滤器来检索特定的商品信息。

安装Django:踏上旅程

在着手我们的项目之前,我们需要在系统中安装Django。以下步骤将指导您完成安装过程:

  1. 确认Python版本: 确保您的系统安装了Python 3.6或更高版本。
  2. 安装Django: 通过pip命令安装Django,在终端中输入以下内容:pip install django
  3. 创建Django项目: 使用django-admin命令创建一个新的Django项目,在终端中输入:django-admin startproject myproject

数据模型:定义数据结构

Django的数据模型本质上是表示数据结构的对象。在我们的项目中,我们将创建Product模型来存储商品信息。Product模型将包含以下字段:

  • id:商品的唯一标识符
  • name:商品名称
  • description:商品
  • price:商品价格
  • quantity:商品库存数量

要定义Product模型,请在models.py文件中添加以下代码:

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    price = models.DecimalField(max_digits=6, decimal_places=2)
    quantity = models.IntegerField()

视图:处理用户请求

视图是处理用户请求和生成响应的控制器。在我们的项目中,我们将使用ProductView视图来管理与商品相关的操作。ProductView视图将包含以下方法:

  • get:检索所有商品或单个商品的信息。
  • post:创建新商品。
  • put:更新现有商品。
  • delete:删除商品。

要定义ProductView视图,请在views.py文件中添加以下代码:

from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView
from .models import Product

class ProductListView(ListView):
    model = Product

class ProductDetailView(DetailView):
    model = Product

class ProductCreateView(CreateView):
    model = Product
    fields = ['name', 'description', 'price', 'quantity']

class ProductUpdateView(UpdateView):
    model = Product
    fields = ['name', 'description', 'price', 'quantity']

class ProductDeleteView(DeleteView):
    model = Product
    success_url = '/products/'

模板:动态内容呈现

模板是用于生成HTML响应的文本文件。在我们的项目中,我们将创建product_list.html模板来显示商品列表,product_detail.html模板来显示单个商品的详细信息,以及product_form.html模板来创建或编辑商品。

在product_list.html模板中,添加以下代码:

{% extends "base.html" %}

{% block content %}
    <h1>商品列表</h1>
    <ul>
    {% for product in object_list %}
        <li><a href="{% url 'product_detail' product.id %}">{{ product.name }}</a></li>
    {% endfor %}
    </ul>
{% endblock %}

在product_detail.html模板中,添加以下代码:

{% extends "base.html" %}

{% block content %}
    <h1>商品详情</h1>
    <p>{{ product.name }}</p>
    <p>{{ product.description }}</p>
    <p>{{ product.price }}</p>
    <p>{{ product.quantity }}</p>
{% endblock %}

在product_form.html模板中,添加以下代码:

{% extends "base.html" %}

{% block content %}
    <h1>添加/编辑商品</h1>
    <form action="{% url 'product_create' %}" method="post">
        {% csrf_token %}
        <label for="name">名称:</label>
        <input type="text" name="name" id="name">
        <br>
        <label for="description">:</label>
        <textarea name="description" id="description"></textarea>
        <br>
        <label for="price">价格:</label>
        <input type="number" name="price" id="price">
        <br>
        <label for="quantity">数量:</label>
        <input type="number" name="quantity" id="quantity">
        <br>
        <input type="submit" value="提交">
    </form>
{% endblock %}

URL配置:映射请求

URL配置将特定URL映射到处理它们的视图。在urls.py文件中,添加以下代码:

from django.urls import path
from .views import ProductListView, ProductDetailView, ProductCreateView, ProductUpdateView, ProductDeleteView

urlpatterns = [
    path('products/', ProductListView.as_view(), name='product_list'),
    path('products/<int:pk>/', ProductDetailView.as_view(), name='product_detail'),
    path('products/create/', ProductCreateView.as_view(), name='product_create'),
    path('products/<int:pk>/update/', ProductUpdateView.as_view(), name='product_update'),
    path('products/<int:pk>/delete/', ProductDeleteView.as_view(), name='product_delete'),
]

启动项目:见证力量

现在,所有模块都已到位,是时候启动我们的项目了。在项目目录中运行以下命令:

python manage.py runserver

导航到http://127.0.0.1/访问您的项目。

常见问题解答:澄清疑问

  1. 为什么选择Django?

    • Django以其易用性、可扩展性和安全著称。它提供了一系列开箱即用的功能,例如用户身份验证、管理界面和强大的查询语言。
  2. 模型如何帮助我管理数据?

    • 模型充当数据与应用程序逻辑之间的桥梁。它们提供了数据验证、数据完整性和高效数据检索。
  3. 视图如何处理用户请求?

    • 视图负责处理用户请求、执行业务逻辑并返回响应。它们是应用程序交互性的核心。
  4. 模板在呈现动态内容方面扮演什么角色?

    • 模板定义了如何使用数据生成HTML响应。它们使用模板语言将数据与HTML代码相结合,创建交互式用户界面。
  5. 如何使用URL配置控制请求流?

    • URL配置允许您将特定的URL模式映射到处理它们的视图。它提供了对应用程序请求流的精细控制。