一、实现步骤

(一)创建Django项目 - books

(二)创建并注册应用 - index

1、创建index应用

在控制台执行python manage.py startapp index

启动项目,访问http://127.0.0.1:8000(点击run运行)

2、注册index应用

(三)创建数据库 - books

(四)配置MySQL数据库连接信息

注意:PASSWORD里面写自己设置的密码

(五)设置MySQL数据库连接模块

(六)实现数据迁移生成表

2、创建用户模型 - User

from django.db import models# Create your models here.
# 创建图书模型
class Book(models.Model):id = models.AutoField(primary_key=True)number = models.CharField('总编号', max_length=10)category = models.CharField('分类号', max_length=10)name = models.CharField('书名', max_length=50)author = models.CharField('作者', max_length=10)press = models.CharField('出版单位', max_length=50)price = models.DecimalField('单价', decimal_places=2, max_digits=6)def __str__(self):return str(self.name)# 创建用户模型
class User(models.Model):id = models.AutoField(primary_key=True)username = models.CharField('用户名', max_length=20)password = models.CharField('密码', max_length=50)last_login_time = models.DateTimeField('上次登录时间!')def __str__(self):return str(self.username)

(八)数据迁移,生成图书表与用户表

查看生成的图书表与用户表

(九)给图书表与用户表添加记录

1、给图书表添加记录

  • 执行SQL查询,插入表记录
  • INSERT INTO `index_book` VALUES (1, '445501', 'TP3/12', '数据库导论', '王文丹', '科学出版社', 17.90);
    INSERT INTO `index_book` VALUES (2, '445502', 'TP3/12', '数据库导论', '王文丹', '科学出版社', 17.90);
    INSERT INTO `index_book` VALUES (3, '445503', 'TP3/12', '数据库导论', '王文丹', '科学出版社', 17.90);
    INSERT INTO `index_book` VALUES (4, '445505', 'TW2/12', '电工基础', '楚留香', '机械工业出版社', 32.00);
    INSERT INTO `index_book` VALUES (5, '332211', 'TP5/10', '计算机基础', '李伟', '高等教育出版社', 18.00);
    INSERT INTO `index_book` VALUES (6, '112266', 'TP3/12', '安卓开发实践', '张慧明', '电子工业出版社', 55.00);
    INSERT INTO `index_book` VALUES (7, '225544', 'TP7/21', '高等数学', '李小刚', '高等教育出版社', 25.00);
    INSERT INTO `index_book` VALUES (8, '225533', 'TP7/12', '线性代数入门', '秦厚荣', '北京大学出版社', 25.00);
    INSERT INTO `index_book` VALUES (9, '113388', 'TR7/90', '大学英语', '杨琼', '北京外国语大学出版社', 30.00);
    INSERT INTO `index_book` VALUES (10, '446601', 'TR4/13', 'Java程序设计', '张凯文', '工信集团出版社', 40.00);
    INSERT INTO `index_book` VALUES (11, '446602', 'TR4/13', 'Java程序设计', '张凯文', '工信集团出版社', 40.00);
    INSERT INTO `index_book` VALUES (12, '446603', 'TR4/13', 'Java程序设计', '张凯文', '工信集团出版社', 40.00);
    INSERT INTO `index_book` VALUES (13, '449901', 'TR4/15', 'Spring Boot实践', '秦文举', '清华大学出版社', 50.00);
    INSERT INTO `index_book` VALUES (14, '449902', 'TR4/15', 'Spring Boot实践', '秦文举', '清华大学出版社', 50.00);
    INSERT INTO `index_book` VALUES (15, '118801', 'TR4/25', '计算机网络', '唐玉玲', '高等教育出版社', 32.00);
    INSERT INTO `index_book` VALUES (16, '118802', 'TR4/25', '计算机网络', '唐玉玲', '高等教育出版社', 32.00);
    

查看图书表

2、给用户表添加记录

  • 执行SQL查询,添加表记录
  • INSERT INTO `index_user` VALUES (1, 'admin', '123456', '2021-05-05 11:14:29');
    INSERT INTO `index_user` VALUES (2, '李晓红', '111111', '2021-05-21 11:14:58');
    INSERT INTO `index_user` VALUES (3, '唐玉刚', '222222', '2021-05-10 11:15:42');
    

查看用户表

(十)创建模板页面

1、创建登录页面 - login.html

  • 在templates文件夹里创建login.html
  • <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>用户登录</title>
    </head>
    <body>
    <h3 style="text-align: center">用户登录</h3>
    <form id="frmLogin" action="do_login" method="post">{% csrf_token %}<table align="center" class="tb" border="1" cellpadding="10" ><tr><td align="center">账号</td><td><input id="username" type="text" name="username"/></td></tr><tr><td align="center">密码</td><td><input id="password" type="password" name="password"/></td></tr><tr align="center"><td colspan="2"><input type="submit" value="登录"/><input type="reset" value="重置"/></td></tr></table><script language="JavaScript">login_msg={{ data | safe }}if(login_msg!=null){alert(login_msg);}</script>
    </form>
    </body>
    </html>

2、创建图书显示页面 - books.html

  • 在templates文件夹里创建books.html
  • <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>显示图书信息</title>
    </head>
    <body><h3>显示图书信息</h3><table border="1" cellpadding="3"><tr><th>序号</th><th>总编号</th><th>分类号</th><th>书名</th><th>作者</th><th>出版单位</th><th>单价</th></tr>{% for book in books %}<tr><td width="50" align="center">{{ book.id }}</td><td width="100" align="center">{{ book.number }}</td><td width="100" align="center">{{ book.category }}</td><td width="300" align="center">{{ book.name }}</td><td width="100" align="center">{{ book.author }}</td><td width="300" align="center">{{ book.press }}</td><td width="100" align="center">{{ book.price }}</td></tr>{% endfor %}</table>
    </body>
    </html>

(十一)设置路由

1、创建子路由

  • 在index目录里创建子路由urls.py,在里面创建子路由集合urlpatterns
  • from django.urls import path
    urlpatterns=[path('login',loginView,name='login'),path('do_login',dologinView,name='do_login'),path('books',booksView,name='books'),
    ]

  • 三个视图函数都需要在index的views.py里创建,目前还没有创建,所以会报错,待会儿创建视图函数后,导入一下就可解决这个问题。

2、设置主路由

  • 在主路由集合里添加一个路由:path('', include(('index.urls', 'index'), namespace='index'))

(十二)创建视图函数

1、创建跳转到登录页面的视图函数 - loginView

3、创建处理登录请求的视图函数 - doLoginView

  • 在index的views.py里创建doLoginView视图函数
  • import json
    from django.shortcuts import render,redirect# Create your views here.
    from index.models import Book,User#创建登录视图函数
    def loginView(request):return render(request,'logoin.html')#创建处理登录请求的视图函数
    def doLoginView(request):if request.method=='POST':username=request.POST.get('username')password=request.POST.get('password')user=User.objects.raw('select * from index_user where username = %s and password =%s',params=[username,password])if len(user)>0:return redirect('../books')else:login_msg=['用户名或密码错误']return render(request,'logoin.html',{'data':json.dumps(login_msg)})
    #创建显示视图函数
    def booksView(request):books=Book.objects.all()return render(request,'books.html',locals())

4、解决子路由中视图函数的导入问题

  • 导入index.views里的三个视图函数
  • from django.urls import path
    from index.views import loginView,doLoginView,booksView
    urlpatterns=[path('login',loginView,name='login'),path('do_login',doLoginView,name='do_login'),path('books',booksView,name='books'),
    ]

(十三)启动项目,测试效果

  • 访问http://127.0.0.1:8000/login,显示登录页面

输入错误的用户名或密码

单击【登录】按钮,弹出消息框提示用户

单击【确定按钮】,重新回到登录页面,输入正确的用户名和密码

单击【登录】按钮,表格显示全部图书信息

添加增删改查按钮

编写一个为增加图书的add.html页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">h1{text-align: center;}table{margin: 20px auto;border: 1px cornflowerblue solid;width: 400px;height: 300px;}td{text-align: center;}span{font-size: 15px;}input{width: 100px;}.ip{padding-right: 30px;}.ip1{padding-right: 10px;}.ip2{width: 50px;height: 50px;border-radius: 15px;border: none;font-size: 20px;background: aqua;color:red;}.ip3{width: 50px;height: 50px;border-radius: 15px;border: none;font-size: 20px;color: aqua;background:red;}</style>
</head>
<body>
<table><h1>添加书籍信息</h1><form id="frmLogin" action="add" method="post"><tr><td class="ip1"><span>总编号:</span><input name="number" type="text"></td></tr><tr><td class="ip1"><span>分类号:</span><input name="category" type="text"></td></tr><tr><td><span>书名:</span><input name="name" type="text"></td></tr><tr><td><span>作者:</span><input name="author" type="text"></td></tr><tr><td class="ip"><span>出版单位:</span><input name="press" type="text"></td></tr><tr><td><span>单价:</span><input name="price" type="text"></td></tr><tr><td><input value="提交" type="submit" class="ip2">&nbsp;&nbsp;<input value="重置" type="reset" class="ip3"></td></tr></form>
</table></body>
</html>

编写一个为增加图书的show.html页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改主页面</title><style type="text/css">.cont{width: 100%;height: 400px;display: flex;flex-direction: column;justify-content: center;align-items: center;border: 1px red solid;position: relative;}.cont div{margin-top: 10px;}.cont span{font-size: 20px;margin-right: 10px;}.cont input{width: 250px;height: 45px;border-radius: 15px;text-align: center;}.cont_bu input{width: 80px;margin-left: 45%;cursor: pointer;}.cont_bu input:hover{background-color: palegreen;color: #FF00FF;}.cont_di{position: absolute;top: 200px;left: 200px;font-size: 25px;color:mediumspringgreen;}.</style>
</head>
<body>
<div class="cont"><div><h1>修改学生数据</h1></div><form action="{% url 'upday' %}" method="post" ><div><span>姓名:</span><input name="name" type="text" placeholder="请输入书名进行修改"></div><div><span>学号:</span><input name="number" type="text" placeholder="请输入修改总编号"></div><div><span>班级:</span><input name="category" type="text"  placeholder="请输入修改你分类号"></div><div><span>性别:</span><input name="author" type="text" placeholder="请输入修改作者"></div><div><span>性别:</span><input name="press" type="text" placeholder="请输入修改出版社"></div><div></div><div class="cont_bu"><input value="提交" type="submit"></div></form>
</div></body>
</html>

【Django】图书管理相关推荐

  1. Django 图书管理

    Django 图书管理 (一)创建Django项目 - books (二)创建并注册应用 - index 1.创建index应用 2.注册index应用 (三)创建数据库 - books (四)配置M ...

  2. python中型项目---Django框架---图书管理网站的制作-01

    图书管理网站的制作详解(个人学习django框架的笔记) 第01号笔记最终成果图: 当前笔记所完成的网站的功能简介: 1 网页从数据库获得图书名称 2 点击新增按钮后增加一本书,当前名为"流 ...

  3. Django案例——图书管理案例

    文章目录 项目开始前 App的建立和路由分配 数据库的建立与连接 模型映射(建立表格) 视图函数 最终的效果图 项目代码连接见:链接:https://pan.baidu.com/s/1mRYMVZkp ...

  4. 基于Django的图书管理系统设计与实现

    全套资源下载地址:https://download.csdn.net/download/sheziqiong/86772475 全套资源下载地址:https://download.csdn.net/d ...

  5. 基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...

    Django 有着强大而又及其易用的admin后台,在这里,你可以轻松实现复杂代码实现的功能,如搜索,筛选,分页,题目可编辑,多选框. 简单到,一行代码就可以实现一个功能,而且模块之间耦合得相当完美. ...

  6. iOS 开发 OC编程 数组冒泡排序.图书管理

    // //  main.m //  oc -5 数组 // //  Created by dllo on 15/10/28. //  Copyright (c) 2015年 dllo. All rig ...

  7. Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)

    1.Django站点管理 站点: 分为内容发布和公共访问两部分 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模 ...

  8. 图书管理系统需求说明书

          图书管理系统需求说明书               1引言................................................................. ...

  9. 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题

    [Python]解决Django Admin管理界面样式表(CSS Style)丢失问题 参考文章: (1)[Python]解决Django Admin管理界面样式表(CSS Style)丢失问题 ( ...

  10. Django 权限管理-后台根据用户权限动态生成菜单

    Django权限管理 实现目标: 1.管理用户,添加角色,用户关联角色 2.添加权限.角色关联权限 3.添加动作.权限关联动作 4.添加菜单.权限关联菜单 实现动态生成用户权限菜单(可设置多级菜单嵌套 ...

最新文章

  1. Mat,Iplimage,vector,vector_vector_Point2f等类型之间的相互转换
  2. python版本不同影响大不大_Python的不同版本对编程有影响吗
  3. windows 2003负载均衡故障切换
  4. 中国游戏公司研运一体发展专题分析2020
  5. 七步从AngularJS菜鸟到专家(6):服务
  6. 推荐系统:参数协同过滤
  7. php 支付宝支付回调与查询订单
  8. Rsync 实现远程同步
  9. 算法竞赛入门经典经典例题及习题题解
  10. ThingsBoard 开源技术体系总览
  11. POI操作Microsoft Office 之 操作PPT简单示例(附源码)
  12. 使用VBA实现Excel下拉多选
  13. 经纬度转换 gcj02转wgs84
  14. LeetCode 741. 摘樱桃 (网格DP)
  15. vue脚手架根据需要进行配置
  16. 交换机及IP地址(概念)
  17. android手机的根目录,安卓根目录详解
  18. 堕落了!经典软件下载网站被查
  19. 华为交换机dhcp获取不到_S7706交换机客户端无法通过DHCP获取地址问题
  20. 一款很好用的画图软件

热门文章

  1. SRPG游戏开发(五十三)第十一章 地图动作与地图事件 - 二 地图剧情(Map Plot)
  2. 趣图:万一跑路失败被抓,可以这样解释
  3. Intellij集成Vue开发环境
  4. 百慕大群岛计划发起区块链土地登记系统
  5. 计算机跨考英语口译,英语专业跨考
  6. mysql毕业生信息管理系统,本科毕业设计信息管理系统的设计(Struts,MySQL)
  7. 零基础如何成为自由插画师?
  8. Oracle使用dblink同步数据
  9. Vue2(十一):脚手架配置代理、github案例、插槽
  10. ​​氨基羧基化二氧化硅包覆核壳结构上转换纳米粒(808激发,蓝光,980激发,绿光)