基于 Django 的手机管理系统实现过程详解
概述
本文将介绍如何使用 Django 框架实现一个手机管理系统。手机管理系统可以用来管理和跟踪手机的库存、销售、维护等信息。我们将分步骤教授如何创建并布置 Django 应用程序,并深入了解应用程序设计下面的一些重要项。
步骤1:创建 Django 应用程序
- 创建Django项目
在终端中,使用以下命令创建 Django 项目:
django-admin startproject phone_management
- 创建Django应用程序
在 Django 项目的根目录中,使用以下命令创建应用程序:
python manage.py startapp phone
- 登记应用程序
向Settings.py文件中的“Installed_Apps”中添加新的应用程序:
INSTALLED_APPS = [
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“phone”,
]
注意:要将应用程序名称 'phone' 添加到
INSTALLED_APPS
中。
步骤2:创建模型并进行迁移
- 定义手机管理系统中要跟踪的字段
在 phone/models.py
文件中,定义 Phone
模型:
```python
from django.db import models
class Phone(models.Model):
phone_name = models.CharField(max_length=200)
brand = models.CharField(max_length=200)
price = models.IntegerField(default=0)
def __str__(self):
return self.phone_name + '-' + self.brand
```
该模型将跟踪三个字段:手机名称、品牌和价格。
- 迁移数据库
在终端中,使用以下命令执行迁移:
python manage.py makemigrations
python manage.py migrate
步骤3:创建视图函数
- 在
phone/views.py
文件中,定义index
视图函数:
```python
from django.shortcuts import render
from phone.models import Phone
def index(request):
phones = Phone.objects.all()
return render(request, 'phone/index.html', {'phones': phones})
```
该视图函数获取所有 Phone
对象并传递给模板。
- 在templates/phone目录下创
index.html
文件:
```
{% extends 'phone/base.html' %}
{% block content %}
手机列表
手机名称 | 品牌 | 价格 |
---|---|---|
{{phone.phone_name}} | {{phone.brand}} | {{phone.price}} |
{% endblock %}
```
步骤4:创建模板
- 在
phone/templates/phone
中,创建base.html
基本模板:
```
{% block content %}
{% endblock %}
```
- 在templates/phone目录下创建
index.html
模板文件(已在步骤3中完成)
步骤5:设置URL
- 在
phone
目录中创建urls.py
文件:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
```
- 在 主项目的
urls.py
文件中,添加phone
的 URL:
```python
from django.urls import path, include
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
path('phone/', include('phone.urls')),
]
```
步骤6:运行服务器
在终端中,使用以下命令运行服务器:
python manage.py runserver
现在,您将看到一个页面,其中列出了手机列表。
示例1:创建新手机
- 定义视图函数
在 phone/views.py
文件中,定义 create_phone
视图函数:
```python
from django.shortcuts import render, redirect
from phone.models import Phone
from phone.forms import PhoneForm
def create_phone(request):
if request.method == 'POST':
form = PhoneForm(request.POST)
if form.is_valid():
form.save()
return redirect('phone:index')
else:
form = PhoneForm()
return render(request, 'phone/create_phone.html', {'form': form})
```
该视图函数处理 PhoneForm
表单,接收来自其中的数据,使用 Phone
模型创建新的 Phone
记录,并将用户重定向回 index
视图。
- 创建表单
在 phone/forms.py
文件中,定义 PhoneForm
类:
```python
from django.forms import ModelForm
from phone.models import Phone
class PhoneForm(ModelForm):
class Meta:
model = Phone
fields = ['phone_name', 'brand', 'price']
```
该表单使用 Phone
模型中定义的 phone_name
、brand
和 price
字段。
- 创建模板
在 phone/templates/phone
目录中,创建 create_phone.html
模板:
```
{% extends 'phone/base.html' %}
{% block content %}
添加新手机
{% endblock %}
```
- 设置URL
在 phone/urls.py
文件中,添加 create_phone
视图函数的 URL:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('create_phone/', views.create_phone, name='create_phone'),
]
```
现在,当用户访问 URL /phone/create_phone/
时,将显示一个表单,用户可以使用该表单创建新手机。
示例2:更新现有手机
- 定义视图函数
在 phone/views.py
文件中,定义 update_phone
视图函数:
```python
from django.shortcuts import render, redirect, get_object_or_404
from phone.models import Phone
from phone.forms import PhoneForm
def update_phone(request, pk):
phone = get_object_or_404(Phone, pk=pk)
if request.method == 'POST':
form = PhoneForm(request.POST, instance=phone)
if form.is_valid():
form.save()
return redirect('phone:index')
else:
form = PhoneForm(instance=phone)
return render(request, 'phone/update_phone.html', {'form': form})
```
该视图函数根据提供的主键查找相应的 Phone
记录。 如果用户提交 POST
请求,则使用 PhoneForm
表单中的数据更新 Phone
记录并将用户重定向回 index
视图。
- 创建模板
在 phone/templates/phone
目录中,创建 update_phone.html
模板:
```
{% extends 'phone/base.html' %}
{% block content %}
更新 "{{ phone.phone_name }}"
{% endblock %}
```
该模板表单和创建手机的模板一样,只不过表单中的数据已经被填充。
- 设置URL
在 phone/urls.py
文件中,添加 update_phone
视图函数的 URL:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('create_phone/', views.create_phone, name='create_phone'),
path('update_phone/
]
```
现在,当用户访问 URL /phone/update_phone/1/
时,将显示一个表单,用户可以使用该表单更新手机。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于 Django 的手机管理系统实现过程详解 - Python技术站