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实现根据主机名字获得所有ip地址的方法
Jun 28 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
python实现感知器
Dec 19 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
python 求10个数的平均数实例
Dec 16 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Python list列表删除元素的4种方法
Nov 01 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数组总结篇(一)
2008/09/30 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
详解webpack babel的配置
2018/01/09 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python线程中同步锁详解
2018/04/27 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python 中如何获取列表的索引
2019/07/02 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
python中count函数简单用法
2020/01/05 Python
python可以用哪些数据库
2020/06/22 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
个人工作表现自我评价
2015/03/06 职场文书
民事答辩状格式范文
2015/05/21 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL