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实现zencart产品数据导入到magento(python导入数据)
Apr 03 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
pytorch之inception_v3的实现案例
Jan 06 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
python生成大写32位uuid代码
Mar 03 Python
python deque模块简单使用代码实例
Mar 12 Python
python raise的基本使用
Sep 10 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 Python
python playwright 自动等待和断言详解
Nov 27 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
PHP类的使用 实例代码讲解
2009/12/28 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
简单的php购物车代码
2020/06/05 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
灵泰克Java笔试题
2016/01/09 面试题
创意活动策划书
2014/01/15 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
电钳工人个人求职信
2014/05/10 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
先进事迹材料范文
2014/12/29 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL