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实现方法
Nov 18 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
Python Selenium截图功能实现代码
Apr 26 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
?生?D片??C字串
2006/12/06 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript AutoScroller 函数类
2009/05/29 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
js中的string.format函数代码
2020/08/11 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
详解python编译器和解释器的区别
2019/06/24 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle
Golang 入门 之url 包
2022/05/04 Golang