用HTML+Python+SQLServer 完成书店管理系统

用HTML+Python+SQLServer 完成书店管理系统

  • 设计要求
  • 数据库设计
  • HTML设计
  • Python程序设计
    • 实现过程
    • 运行过程
    • 期间遇到的问题
      • 搭建django框架
      • django NameError: name 'os' is not defined
      • module 'sqlserver_pymssql' has no attribute 'connect'
      • Page not found (404)
      • OperationalError at /logging/save

设计要求

一、项目名称:书店管理系统设计
二、系统功能的基本要求:
本系统要求实现以下主要功能:
1.数据录入功能
主要任务是对各种书店管理信息进行日常的管理,如书籍信息的输入、查询、修改、增加、删除,书籍入库、出库信息的登记与查询,迅速准确地完成各种书籍销售信息的统计计算和汇总,快速打印出报表。
2.数据查询功能
系统需要提供以下查询功能:
员工基本信息
书籍基本信息
书籍库存情况
书籍销售情况
3.数据统计功能
统计每个销售人员的销售情况
统计书店盈利情况
4.员工登录,其中员工分为经理、销售、采购、库管四个角色。不同角色员工拥有不同的查询页面和视图。
三、课程设计的目的和意义
《网络数据库应用》是实践性教学环节之一,是《网络数据库应用》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
实训目的:
了解数据库系统的理论
掌握数据库设计的基本方法,熟悉数据库设计的步骤;
通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力
学习基本数据库编程方法
快速跟踪数据库系统软件的新技术及市场应用动态。
四、应掌握的知识点
数据库基本原理
关系数据库的设计方法、设计思路
初步掌握一种关系数据库语言
五、应训练的能力点
SQL Server 2008及以上版本的操作与使用
数据库的概念设计与逻辑设计
数据库的建立与管理、数据表的建立与操作
SQL查询语言的使用与编程
设计和开发一个数据库应用系统的数据库设计部分
六、数据库设计内容
(主要完成内容,要求完成数据库、数据表的设计、创建,约束、视图、存储过程的编写。)
七、系统开发
(可用不同语言实现,选做)

数据库设计

建立数据库

use master 
create database bookstore
on(
	name = bookstore_data,
	filename = 'E:\数据库\bookstore_data.mdf',
	size = 4,
	maxsize = 20,
	filegrowth = 10%)
log on(
	name = bookstore_log,
	filename = 'E:\数据库\bookstore_log.ldf',
	size = 2MB,
	maxsize = 10MB,
	filegrowth = 1MB)
go

根据要求创建四个数据表
员工基本信息

use bookstore
create table 员工基本信息(
员工号 char(64) primary key not null,
员工姓名 char(128) not null,
性别 char(16) check(性别 = '男'or 性别 = '女'),
年龄 int not null,
员工角色 char(128) check(员工角色 = '经理' or 员工角色 = '销售' or 员工角色 = '采购' or 员工角色 = '库管') not null
)
go

书籍基本信息

use bookstore
create table 书籍基本信息(
书籍编号 char(128) primary key not null,
书籍名字 char(128) not null,
作者 char(64) not null,
价格 int not null,
出版商 char(128) not null
)
go

书籍库存情况

use bookstore
create table 书籍库存情况(
书籍编号 char(128) not null
	foreign key references 书籍基本信息(书籍编号),
进货数量 int not null,
库存数量 int not null,
员工号 char(64)
	foreign key references 员工基本信息(员工号),
)
go

书籍销售情况

use bookstore
create table 书籍销售情况(
书籍编号 char(128) not null
	foreign key references 书籍基本信息(书籍编号),
成本价格 int not null,
销售价格 int not null,
销售数量 int not null,
员工号 char(64)
	foreign key references 员工基本信息(员工号),
利润 int not null
)
go

HTML设计

以员工基本信息表为例,建立一个简单的信息录入界面


<html lang="en">
<head>
    <meta charset="UTF-8">
<title>无标题文档title>
head>

<body>
<form action="save" method="get">
	<span>
    	员工号:<input type="text" name="sno">
    span>
    <br>
    <span>
    	员工姓名:<input type="text" name="sname">
    span>
    <br>
    <span>别:<input type="text" name="ssex">
    span>
    <br>
    <span>龄:<input type="text" name="sage">
    span>
    <br>
    <span>
    	员工角色:<input type="text" name="scharacter">
    span>
    <br>
    <span>
        <input type="submit" name="submit1" value="录入">
    span>
form>
body>
html>

用HTML+Python+SQLServer 完成书店管理系统_第1张图片

Python程序设计

这部分是我在编写整个系统中遇到困难最多的一个部分,由于并没有系统的学习过,查阅了很多资料和大佬们的博客,才成功将HTML与SQLServer联系起来

原文博客地址

实现过程

创建django项目,并将html文件放入template模板文件夹中
用HTML+Python+SQLServer 完成书店管理系统_第2张图片
用HTML+Python+SQLServer 完成书店管理系统_第3张图片
把html文件放入template模板文件夹中
打开django项目中的urls.py文件,进行编辑

"""store URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
from django.shortcuts import HttpResponse
import os
import django
import pymssql

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "store.settings")# project_name 项目名称
django.setup()
def logging (request):
    return render(request,"logging.html")
def save (request):
    a = request.GET
    sno = a.get('sno')
    sname = a.get('sname')
    ssex = a.get('ssex')
    sage = a.get('sage')
    scharacter = a.get('scharacter')
    db = pymssql.connect('(local)','sa','111111',database = 'bookstore')
    cursor = db.cursor()
    sql1 = 'select * from 员工基本信息'
    cursor.execute(sql1)
    all_users = cursor.fetchall()
    sql2 = 'insert into 员工基本信息(员工号,员工姓名,性别,年龄,员工角色) VALUES(%s,%s,%s,%s,%s)'
    cursor.execute(sql2,(sno,sname,ssex,sage,scharacter))
    db.commit()
    cursor.close()
    db.close()
    return HttpResponse('录入成功')
urlpatterns = [
    path('admin/', admin.site.urls),
    path('logging/',logging),
    path('logging/save',save)
]

运行过程

运行整个django项目,访问相应url
用HTML+Python+SQLServer 完成书店管理系统_第4张图片在这里插入图片描述
在这里插入图片描述
当再次录入同一个员工号时,会发现系统报错,这是因为我们给员工号设置了主键,主键不能重复出现

期间遇到的问题

搭建django框架

我使用pycharm的是编译器,不过总是安装失败,翻了许多资料才找到原因:

原因是报了一个ssl异常,也就是说和国外源站服务器ssl失败。

所以选用国内源站安装:

选中Options,输入:“ -i https://pypi.tuna.tsinghua.edu.cn/simple”

然后再点击Install Package,即可安装成功。

原文博客地址

django NameError: name ‘os’ is not defined

第一次试运行时报错NameError: name ‘os’ is not defined,发现setting.py中没有引用os模块,但是调用了os模块

解决方法:在setting.py开头加上import os

module ‘sqlserver_pymssql’ has no attribute ‘connect’

用HTML+Python+SQLServer 完成书店管理系统_第5张图片
运行成功后打开url,直接报错,原来我在调用pymssql时写成了sqlserver-pymssql,系统无法执行.connect

解决方法:将调用的库换为pymssql

Page not found (404)

用HTML+Python+SQLServer 完成书店管理系统_第6张图片
直接打开127.0.0.1:8000后,弹出的并不是html页面,而是404,需要手动在127.0.0.1:8000后加 /logging/

urlpatterns = [
    path('admin/', admin.site.urls),
    path('logging/',logging),#将前面的logging/写在127.0.0.1:8000后
    path('logging/save',save)
]

OperationalError at /logging/save

用HTML+Python+SQLServer 完成书店管理系统_第7张图片
这里是调用数据库出了问题,由于我并没有建立网络数据库,因此把数据库地址改为本地(local)即可

路漫漫其修远兮,这只是完成了项目的其中一小部分,也是我第一次接触前后端连接的成果,如存在不合理的地方,多谢指正!

你可能感兴趣的:(python学习记录,数据库,python,django,html)