溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實現(xiàn)基于Django的手機管理系統(tǒng)

發(fā)布時間:2021-08-07 09:44:27 來源:億速云 閱讀:161 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下如何實現(xiàn)基于Django的手機管理系統(tǒng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、概述

打算通過設(shè)計數(shù)據(jù)庫,然后結(jié)合 Python 框架Django,實現(xiàn)在網(wǎng)頁上對數(shù)據(jù)庫的增刪改查(本例以手機的管理為例,不考慮訂購功能),有普通用戶界面和管理員用戶界面,普通用戶只能做簡單的查看需求,管理員用戶可以實現(xiàn)對數(shù)據(jù)庫內(nèi)容的實時修改。

網(wǎng)站主體如下圖:

如何實現(xiàn)基于Django的手機管理系統(tǒng)

二、設(shè)計數(shù)據(jù)庫

根據(jù)業(yè)務(wù)需求,設(shè)計數(shù)據(jù)表,需要下列這些屬性:

手機型號、品牌、手機描述、出廠年份、價格、照片、產(chǎn)地。

根據(jù)數(shù)據(jù)表設(shè)計原則,數(shù)據(jù)表設(shè)計需要滿足基本的函數(shù)依賴和范式要求,因此我們將上述屬性拆分為四張表格,并建立這些數(shù)據(jù)表之間的聯(lián)系,相關(guān)的E-R 圖如圖所示:

(由于 Django 在建立每一個數(shù)據(jù)表的時候就會有一個內(nèi)建的 id 作為主鍵,因此在此就不需要另外再設(shè)置主鍵字段)

如何實現(xiàn)基于Django的手機管理系統(tǒng)

此數(shù)據(jù)庫字段由于是我從 sqlite 遷移到 MySQL 中,Django 自動幫我再生成的字段,所以有些字段名和我在 Django 寫的字段不一致,但數(shù)據(jù)表關(guān)系還是一致的。

在 Django 中設(shè)計數(shù)據(jù)表相關(guān)代碼如下:

from django.db import models

# Create your models here.

class Maker(models.Model):
 name = models.CharField(max_length=10)
 country = models.CharField(max_length=10)

 def __str__(self):
  return self.name

class PModel(models.Model):
 maker = models.ForeignKey(Maker, on_delete=models.CASCADE)
 name = models.CharField(max_length=20)
 url = models.URLField(default='http://i.imgur.com/OusiGB.png')

 def __str__(self):
  return self.name

class Product(models.Model):
 pmodel = models.ForeignKey(PModel, on_delete=models.CASCADE, verbose_name='型號')
 nickname = models.CharField(max_length=15, default='超值二手手機', verbose_name='摘要')
 description = models.TextField(default='暫無說明', verbose_name='暫無說明')
 year = models.PositiveIntegerField(default=2016, verbose_name='出廠年份')
 price = models.PositiveIntegerField(default=0, verbose_name='價格')

 def __str__(self):
  return self.nickname

class PPhoto(models.Model):
 product = models.ForeignKey(Product, on_delete=models.CASCADE)
 description = models.CharField(max_length=20, default='產(chǎn)品照片')
 url = models.URLField(default='http://i.imgur.com/z230eeq.png')

 def __str__(self):
  return self.description

在終端下執(zhí)行以下指令,進行數(shù)據(jù)庫的更新以及遷移操作,并創(chuàng)建管理員用戶:

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

然后插入數(shù)據(jù)。

注意安裝 Python 的 MySQL 驅(qū)動程序這塊,剛開始安裝 MySQL 官網(wǎng)提供的 mysql-python 這個模塊,但在 Python3環(huán)境下會報錯,原因是mysql-python 模塊不支持 Python3版本,所以安裝使用pymysql 模塊。
注意在 models.py 文件同級文件中的init.py 修改為:

import pymysql
pymysql.install_as_MySQLdb()

操作便與 mysql-python 的使用方法一致了。

網(wǎng)站管理員登錄界面:

如何實現(xiàn)基于Django的手機管理系統(tǒng)

管理員的增刪改查界面:

如何實現(xiàn)基于Django的手機管理系統(tǒng)

三、設(shè)計網(wǎng)站

設(shè)計網(wǎng)站,在 Django 中增加 static 文件和 template 文件,套用相關(guān)模板和框架(這里運用了 bootstrap),編寫 HTML 文件,調(diào)用數(shù)據(jù)庫中的內(nèi)容,設(shè)計的網(wǎng)站如下(即普通用戶能查看的界面):

主頁面:

如何實現(xiàn)基于Django的手機管理系統(tǒng)

商品詳情界面:

如何實現(xiàn)基于Django的手機管理系統(tǒng)

以上是“如何實現(xiàn)基于Django的手機管理系統(tǒng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI