Django案例:显示图书信息

一、提出任务

  • 任务:显示图书信息
  • 图书表结构
    在这里插入图片描述
  • 用户表结构
    在这里插入图片描述
  • 用户登录成功,在模板页面以表格方式显示全部图书信息
  • 用户登录失败,弹出消息框,提示“用户名或密码错误”,单击【确定】按钮,返回登录页面

二、实现步骤

(一)创建Django项目 - books

  • 创建Django项目,设置项目位置与项目名
    在这里插入图片描述
    在这里插入图片描述

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

1、创建index应用

  • 在项目配置文件里,导入os模块
    在这里插入图片描述
  • 在控制台执行python manage.py startapp index
    在这里插入图片描述
  • 启动项目,访问http://127.0.0.1:8000
    在这里插入图片描述

2、注册index应用

  • 在配置文件的INSTALLED_APPS列表里添加index应用
    在这里插入图片描述

(三)创建数据库 - books

  • 在Navicat里创建MySQL数据库 - books
    在这里插入图片描述
    在这里插入图片描述

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

  • 在settings.py文件里配置MySQL数据库连接信息
    在这里插入图片描述

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

  • 在books的__init__.py文件里设置数据库连接模块
    在这里插入图片描述
  • 如果导入pymysql语句报错,那么在控制台执行pip install pymysql安装pymysql模块

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

  • 依次执行下述两条命令
    ### 1、生成迁移文件
  • 查看生成的数据表
    在这里插入图片描述

(七)创建模型

1、创建图书模型 - Book

  • 在index的models.py文件里定义Book模型类
    在这里插入图片描述

2、创建用户模型 - User

在这里插入图片描述

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

  • 依次执行下面两条命令
    在这里插入图片描述
    在这里插入图片描述
  • 查看生成的图书表与用户表
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

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
    在这里插入图片描述

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

  • 在templates文件夹里创建books.html
    在这里插入图片描述

(十一)设置路由

1、创建子路由

  • 在index目录里创建子路由urls.py,在里面创建子路由集合urlpatterns
    在这里插入图片描述
  • 三个视图函数都需要在index的views.py里创建,目前还没有创建,所以会报错,待会儿创建视图函数后,导入一下就可解决这个问题。

2、设置主路由

  • 在主路由集合里添加一个路由:path('', include(('index.urls', 'index'), namespace='index'))
    在这里插入图片描述

(十二)创建视图函数

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

  • 在index的views.py里创建loginView视图函数
    在这里插入图片描述

2、创建显示图书的视图函数 - booksView

  • 在index的views.py里创建booksView视图函数
    在这里插入图片描述

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

  • 在index的views.py里创建doLoginView视图函数
    在这里插入图片描述

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

  • 导入index.views里的三个视图函数
    在这里插入图片描述

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

  • 访问http://127.0.0.1:8000/login,显示登录页面
    在这里插入图片描述
  • 输入错误的用户名或密码
    在这里插入图片描述
  • 单击【确定】按钮,弹出消息框提示用户
    在这里插入图片描述
  • 单击【确定按钮】,重新回到登录页面,输入正确的用户名和密码
    在这里插入图片描述
  • 单击【登录】按钮,表格显示全部图书信息
    在这里插入图片描述
  • 操作录屏GIF
    在这里插入图片描述

三、课后练习

任务:实现图书记录删除功能

  • 表格添加一列【操作】- 每条记录最后有一个删除按钮
    在这里插入图片描述
  • 单击某条记录的【删除】按钮,弹出消息框询问用户是否要删除
    在这里插入图片描述
  • 单击【取消】,不删除,单击【确定】,就删除
    在这里插入图片描述
    在这里插入图片描述
  • 操作录屏GIF
    在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/howard2005/article/details/122236804
Recomendado
Clasificación