图书管理网站的制作详解(个人学习django框架的笔记)

第01号笔记最终成果图:

当前笔记所完成的网站的功能简介:
1 网页从数据库获得图书名称
2 点击新增按钮后增加一本书,当前名为“流星蝴蝶剑”
3 点击新增后当前页面url地址不变


该图书管理网站以下简称“网站”,网站主要功能有:
1:显示所含图书书名,显示每个图书出版日期,浏览量,评论量。
2:点击图书名可进入图书详情页:显示书内主要角色信息(姓名,性别,备注(也就是小说人物的招牌招式技能等))


项目制作环境:
Windows10 企业版
python3.7
Mysql5.7.28
Django库
Pycharm


1.设计模型类并生成表

1.设计BookInfo,增加属性bread和bcomment,另外设置软删除标记属性isDelete。

在图片所示的test2/booktest/models.py文件中添加如下代码(设置图书、英雄模型类)

添加图书模型类↓

from django.db import models# 一类 对应下面多类
class BookInfo(models.Model):'''图书模型类'''#图书名称btitle = models.CharField(max_length=20)  #字符串类型#出版日期bpub_data = models.DateField()   #日期类型#阅读量bread = models.IntegerField(default = 0)   #整数类型,default是默认值#评论量bcomment = models.IntegerField(default = 0)   #整数类型,default是默认值# 删除标记isDelete = models.BooleanField(default = False)

2.设计HeroInfo类型,增加软删除标记属性isDelete。
软删除标记删除数据时不做真正的删除,而是把标记数据设置为1表示删除,目的是防止重要的数据丢失。

添加书中英雄模型类↓

class HeroInfo(models.Model):'''英雄模型类'''# 英雄名hname = models.CharField(max_length = 20)# 性别hgender = models.BooleanField(default = False) #默认代表男# 备注(技能,绝学)hcomment = models.CharField(max_length = 200)# 关联属性--用来关联 其属于某一类hbook = models.ForeignKey(BookInfo)# 删除标记isDelete = models.BooleanField(default=False)

此时创建完两个类后要执行迁移文件
操作:ctrl+R 输入cmd掉出命令行,切换到当前项目根文件(D:\pyStudy\djpro1\test2)中,输入python manage.py makemigrations按回车显示如下图:
●可见成功生成迁移文件<0001_initial.py>。
●此时可见migrations文件夹下也多了一个文件<0001_initial.py>。

此时迁移文件生成完毕


此时另外启动一个cmd调到当前文件夹下,输入mysql -u root -p —>输入密码 ----> 输入show databases; ---->输入 use bj18;(此时的bj18是需要提前设置好的数据库) ---->输入show tables;检查的当前连接数据库的模板(如下图):


此时再在cmd中输入:desc booktest_bookinfo; 来查看booktest目录下bookinfo的结构(如下图)

同样操作检查booktest下heroinfo结构(如下图):
但是此时数据库是空的,就需要添加一些数据。


以下数据是博主已经编辑好的,复制到打开数据库的cmd中就可以直接添加。

insert into booktest_bookinfo(btitle,bpub_data,bread,bcomment,isDelete) values
(‘射雕英雄传’,‘1980-5-1’,12,34,0),
(‘天龙八部’,‘1986-7-24’,36,40,0),
(‘笑傲江湖’,‘1995-12-24’,20,80,0),
(‘雪山飞狐’,‘1987-11-11’,58,24,0);
insert into booktest_heroinfo(hname,hgender,hbook_id,hcomment,isDelete) values
(‘郭靖’,1,1,‘降龙十八掌’,0),
(‘黄蓉’,0,1,‘打狗棍法’,0),
(‘黄药师’,1,1,‘弹指神通’,0),
(‘欧阳锋’,1,1,‘蛤蟆功’,0),
(‘梅超风’,0,1,‘九阴白骨爪’,0),
(‘乔峰’,1,2,‘降龙十八掌’,0),
(‘段誉’,1,2,‘六脉神剑’,0),
(‘王语嫣’,0,2,‘神仙姐姐’,0),
(‘令狐冲’,1,3,‘独孤九剑’,0),
(‘任盈盈’,0,3,‘弹琴’,0),
(‘东方不败’,0,3,‘葵花宝典’,0),
(‘胡斐’,1,4,‘胡家刀法’,0),
(‘苗若兰’,0,4,‘黄衣’,0),
(‘程灵素’,0,4,‘医术’,0),
(‘袁紫衣’,0,4,‘六合拳’,0);

如图可见已经保存成功↓

此时在负责数据库的cmd中输入select * from booktest_bookinfo; 查看此时数据库内的图书信息。同理,输入select * from booktest_heroinfo; 查看此时数据库内的英雄信息添加数据完成后,就可以执行启动服务器了,在cmd中输入 python manage.py runserver 回车

接下来需要编辑url了


2.编写视图函数并配置URL

(1)图书信息展示页:

a.设计url,用过浏览器访问 http://127.0.0.1:8000/index 时候显示图书信息页面。首先打开booktest下的views.py文件输入如下图所示代码*

b.设计url对应的视图函数Index:查询出所有图书的信息,然后将这些信息传递给模板文件。

然后在test2目录新建名为templates的文件夹此时打开test2/test2/settings.py文件设置模板目录

接下来在刚才新建的templates文件夹下新建名为booktest的文件夹
再在新建的booktest文件夹下新建名为index的HTML文件打开test2/booktest/views.py文件添加如下代码
打开test2/urls.py添加如下图代码后,将url.py文件粘贴到booktest文件夹下
编辑粘贴过来的urls.py文件

c.编写模板文件index.html:遍历显示出每一本图书的信息并添加新建和删除超链接。

此时在templates/booktest/index.html文件中编写如下代码然后打开网页输入http://127.0.0.1:8000/index显示如图
2.图书信息新增

点击“新增”按钮后显示所以此时需要构建视图

打开test2/booktest/migrations/views.py输入如下代码:

def create(request):'''新增一本图书'''# 1.创建BookInfo对象b = BookInfo()b.btitle = '流星蝴蝶剑'b.bpub_data = date(1990,1,1)# 2.保存到数据库里b.save()# 3.返回应答,让浏览器在访问/index,重定向return HttpResponse('ok')

3.创建模板文件


然后点开同级目录下的urls.py文件并输入

url(r'^create$', views.create) #新增一本图书

此时再进入网页http://127.0.0.1:8000/create可看到运行成功

接下来要用到重定向

重定向(Redirect):就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

打开views.py文件,导入django.http包中的HttpResponseRedrect模块,然后在create方法中修改返回值(如下图)

该操作的目的可以称之为页面重定向
也就是使服务器不返回页面,而是告诉浏览器再去申请其他的url地址。


然后返回网页,多次点击“新增”页面后可发现链接仍然是"http://127.0.0.1:8000/index"

python中型项目---Django框架---图书管理网站的制作-01相关推荐

  1. Python基于mysql+Django框架图书管理系统源代码(含mysql文件)

    项目前台和后台界面模板都是自己编写,前台采用Bootstrap框架UI,后台EasyUI框架UI,没有采用Django自动生成的那个后台管理,因为那个后台实在是太丑了,丑得惨不忍睹!整个项目主要负责图 ...

  2. python毕业设计 基于django框架企业公司网站系统毕业设计设计与实现

    开发环境 开发语言:python:Python版本:3.8.7 开发框架:Django:Django版本:4.x 数据库:mysql:数据库版本:mysql8 数据库管理工具:navicat10+ 开 ...

  3. 师傅带徒弟学:Python Web之Django框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Django框架-475人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和D ...

  4. python进阶学习--- django框架解析 ---领悟编程语言共性与特性【后续详解】

    python进阶学习---> django框架解析 --->领悟编程语言共性与特性 1.python语言介绍   python解释型脚本语言 2.python执行原理   python解释 ...

  5. 使用Django框架实现游戏网站搭建

    完整工程链接点击打开链接 上一篇中我们使用了Javascript和Html5实现了弹球游戏,而在本文中我们希望以其为基础实现游戏网站,能够实现用户的注册登录,游戏成绩记录,排名显示,微博分享等功能. ...

  6. Java毕设项目艾灸减肥管理网站计算机(附源码+系统+数据库+LW)

    Java毕设项目艾灸减肥管理网站计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ec ...

  7. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作

    Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...

  8. 基于python下django框架 实现校园网站系统详细设计

    前言介绍(开发目的和意义) 校园网站是当前信息化的表现.在没有电脑和互联网的时代.要想了解校园信息.专业分院信息.老师信息等只能通过纸质的报纸或者杂志.在PC电脑和互联网的发展下,现在只有在有网络的地 ...

  9. python毕业设计作品基于django框架企业公司网站毕设成品(6)开题答辩PPT

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

最新文章

  1. Mybatis学习第一天——Mybatis的安装配置以及基本CURD操作
  2. ICLR 2022 | 香侬科技提出基于图神经网络的语义理解模型,获单项满分
  3. 又~发现两篇好文章~~
  4. 一些没啥用的大数据组件以及理由(持续更新中)+2020的Gartner曲线
  5. leedcode344. 反转字符串
  6. GNN手绘草图识别新架构:Multi-Graph Transformer 网络
  7. 电脑字体在哪个文件夹_在PS里如何安装字体
  8. 智能优化算法:未来搜索算法-附代码
  9. Java 对象数组的定义与用法详解
  10. 有道词典java下载电脑版下载手机版下载安装_【有道词典官方下载】有道词典PC版下载_多特软件站...
  11. 又一打包工具介绍:Installshield 打包安装包心得
  12. PHP 数字转换为大写的函数
  13. java判断日文_如何判断字符串中含有日文字符
  14. pdf怎么提取页面,pdf页面提取方法
  15. 为什么计算机键盘用不了怎么办,笔记本电脑键盘用不了怎么办
  16. Reog Ponorogo是爪哇族人在印尼的一个部落的传统舞蹈
  17. 利用python PIL模块在图片上写文字
  18. echarts—地图实现
  19. android存储文件数据恢复,安卓手机文件如何恢复?
  20. Java FX 表格数据赋值

热门文章

  1. JavaWeb课设咖啡点单系统
  2. SDRAM——X210的SDRAM的初始化
  3. 炉石传说 java_炉石传说 java实现
  4. 三百年历史老字号:雷允上借力泛微OA实现资产数字化管理
  5. 解决SpringBoot集成分页插件pagehelper出现的循环依赖问题
  6. 来一个高考倒计时程序
  7. html常见的块元素与内联(行内)元素用法说明
  8. 嵌入式开发|阿里云物联网平台在线升级OTA
  9. 绿联扩展坞拆解_绿联Type-C扩展坞手机底座连接图文教程
  10. leetcode-剑指 Offer 46. 把数字翻译成字符串