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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
python与php实现分割文件代码
Mar 06 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
python线程中同步锁详解
Apr 27 Python
Python实现多进程的四种方式
Feb 22 Python
Python使用字典的嵌套功能详解
Feb 27 Python
Pytorch实现神经网络的分类方式
Jan 08 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
Django之腾讯云短信的实现
Jun 12 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
python实现简易版计算器
2020/06/22 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
python获取交互式ssh shell的方法
2019/02/14 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python之语音识别speech模块
2020/09/09 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
行政办公室岗位职责
2014/03/18 职场文书
初一学生期末评语
2014/04/24 职场文书
海洋科学专业求职信
2014/08/10 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
党委工作总结2015
2015/04/27 职场文书
MySQL普通表如何转换成分区表
2022/05/30 MySQL