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 27 Python
python使用PIL模块实现给图片打水印的方法
May 22 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Django的Modelforms用法简介
Jul 27 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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基础知识:控制结构
2006/12/13 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
python单例模式实例分析
2015/04/08 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
十个Python程序员易犯的错误
2015/12/15 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python虚拟环境完美部署教程
2019/08/06 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python处理PDF与CDF实例
2020/02/26 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
函授自我鉴定范文
2014/02/06 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
认真学习保证书
2015/02/26 职场文书
盗窃案辩护词
2015/05/21 职场文书
首都博物馆观后感
2015/06/05 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS