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如何实现远程控制电脑(结合微信)
Dec 21 Python
Python数据结构之翻转链表
Feb 25 Python
Python存取XML的常见方法实例分析
Mar 21 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Django项目创建及管理实现流程详解
Oct 13 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python中把元组转换为namedtuple方法
Dec 09 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
python套接字socket通信
Apr 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
python实现堆栈与队列的方法
2015/01/15 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
司机的工作范围及职责
2013/11/13 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
公司年夜饭通知
2015/04/25 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
pt-archiver 主键自增
2022/04/26 MySQL