Django框架搭建的简易图书信息网站案例


Posted in Python onMay 25, 2019

本文实例讲述了Django框架搭建的简易图书信息网站。分享给大家供大家参考,具体如下:

创建Django项目,将数据库改为mysql,修改项目的urls.py文件

创建一个新应用,在应用里创建urls.py文件。

在应用的models.py里建表

from django.db import models
# Create your models here.
#一类
class BookInfo(models.Model):
 btitle=models.CharField(max_length=20)#图书名称
 bpub_date=models.DateField()#出版日期
 bread=models.IntegerField(default=0)#阅读量,默认为0
 bcomment=models.IntegerField(default=0)#评论量
 isDlete=models.BooleanField(default=False)#逻辑删除,默认不删除
#多类
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')
 isDlete = models.BooleanField(default=False) # 逻辑删除,默认不删除

首页index.html查询所有图书信息,在views.py里完善index函数。

def index(request):
 # 1.查询出所有图书的信息
 books = BookInfo.objects.all()
 # 2.使用模板
 return render(request, 'booktest/index.html', {'books': books})

在template文件夹下的booketest文件夹下新建index.html文件。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>图书信息</title>
</head>
<body>
<a href="/create" rel="external nofollow" >新增</a>
 <ul>
  {% for book in books %}
   <li><a href="/books{{ book.id }}" rel="external nofollow" >{{ book.btitle }}</a><a href="/delete{{ book.id }}" rel="external nofollow" >_删除</a></li>
  {% endfor %}
 </ul>
</body>
</html>

index.html里有一个create新增按钮,去view.py里添加create处理函数

def create(request):
 '''新增一本图书'''
 # 1.创建一个bookinfo对象
 b = BookInfo()
 b.btitle = '流星蝴蝶剑'
 b.bpub_date = date(1990, 1, 1)
 # 2.保存进数据库
 b.save()
 # 3.返回应答
 # return HttpResponse('ok')
 # 让浏览器返回首页
 return HttpResponseRedirect('/index')

数据库里添加上之后,重定向到首页index。

应用的urls.py文件里要写url(r'^create$',views.create),才能正确的跳转到create处理函数。

一个显示书里人物的details.html,从index.html用book.id去寻找书的数据。

去views.py写details处理函数

def details(request,bid):
 book=BookInfo.objects.get(id=bid)
 heros=book.heroinfo_set.all()
 return render(request,'booktest/details.html',{'book':book,'heros':heros})

新建details.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h1>{{book.btitle}}</h1>
英雄信息:
<br/>
<ul>
 {% for hero in heros %}
 <li>{{hero.hname}}--{{hero.hcomment}}</li>
  {% empty %}
  没有英雄信息
 {% endfor %}
</ul>
</body>
</html>

去应用的urls.py里把url地址和视图处理函数对应上

url(r'^books(\d+)$',views.details)

这里的(\d+)是需要传参到details视图处理函数。

github:https://github.com/zhangyuespec/Django

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
如何运行Python程序的方法
Apr 21 Python
实例说明Python中比较运算符的使用
May 13 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
Python提取频域特征知识点浅析
Mar 04 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
python的列表List求均值和中位数实例
Mar 03 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Python中相见恨晚的技巧
Apr 13 Python
Django框架实现的分页demo示例
May 25 #Python
Flask框架工厂函数用法实例分析
May 25 #Python
Python中Numpy mat的使用详解
May 24 #Python
Python中Numpy ndarray的使用详解
May 24 #Python
numpy数组之存取文件的实现示例
May 24 #Python
Python实现使用request模块下载图片demo示例
May 24 #Python
Python实现操纵控制windows注册表的方法分析
May 24 #Python
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php的hash算法介绍
2014/02/13 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
vue 请求后台数据的实例代码
2017/06/22 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
python实现BackPropagation算法
2017/12/14 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
基于python的Paxos算法实现
2019/07/03 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
党支部承诺书范文
2014/03/28 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
如何写辞职书
2015/02/26 职场文书
工作一年自我鉴定
2019/06/20 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL