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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python使用Matplotlib画饼图
Sep 25 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
Python实现点云投影到平面显示
Jan 18 Python
Python callable内置函数原理解析
Mar 05 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 Python
用python绘制樱花树
Oct 09 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
无限级别菜单的实现
2006/10/09 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
jquery中radio checked问题
2015/03/16 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
python求最大连续子数组的和
2018/07/07 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python实现动态创建类的方法分析
2019/06/25 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
标准单位租车协议书
2014/09/23 职场文书
校长个人总结
2015/03/03 职场文书
教师创先争优承诺书
2015/04/27 职场文书
保姆聘用合同
2015/09/21 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
Python访问Redis的详细操作
2021/06/26 Python