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

图书管理网站的制作详解(个人学习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"在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值