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简单日志处理类分享
Feb 14 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
pandas 读取各种格式文件的方法
Jun 22 Python
Python对切片命名的实现方法
Oct 16 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
python两种注释用法的示例
Oct 09 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
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jQuery获取动态生成的元素示例
2014/06/15 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
RC4文件加密的python实现方法
2015/06/30 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
python协程之动态添加任务的方法
2019/02/19 Python
jupyter notebook 重装教程
2020/04/16 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
六十大寿答谢词
2014/01/12 职场文书
数学系个人求职信范文
2014/01/30 职场文书
旅游文化节策划方案
2014/06/06 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
Docker部署Mysql8的实现步骤
2022/07/07 Servers