经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Django框架搭建的简易图书信息网站案例
来源:jb51  时间:2019/5/27 8:33:31  对本文有异议

本文实例讲述了Django框架搭建的简易图书信息网站。分享给大家供大家参考,具体如下:

创建Django项目,将数据库改为mysql,修改项目的urls.py文件

创建一个新应用,在应用里创建urls.py文件。

在应用的models.py里建表

  1. from django.db import models
  2. # Create your models here.
  3. #一类
  4. class BookInfo(models.Model):
  5. btitle=models.CharField(max_length=20)#图书名称
  6. bpub_date=models.DateField()#出版日期
  7. bread=models.IntegerField(default=0)#阅读量,默认为0
  8. bcomment=models.IntegerField(default=0)#评论量
  9. isDlete=models.BooleanField(default=False)#逻辑删除,默认不删除
  10. #多类
  11. class HeroInfo(models.Model):
  12. hname=models.CharField(max_length=20)
  13. hgender=models.BooleanField(default=False)
  14. hcomment=models.CharField(max_length=200)
  15. #定义一个关系属性
  16. hbook=models.ForeignKey('BookInfo')
  17. isDlete = models.BooleanField(default=False) # 逻辑删除,默认不删除
  18.  

首页index.html查询所有图书信息,在views.py里完善index函数。

  1. def index(request):
  2. # 1.查询出所有图书的信息
  3. books = BookInfo.objects.all()
  4. # 2.使用模板
  5. return render(request, 'booktest/index.html', {'books': books})
  6.  

在template文件夹下的booketest文件夹下新建index.html文件。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>图书信息</title>
  6. </head>
  7. <body>
  8. <a href="/create" rel="external nofollow" >新增</a>
  9. <ul>
  10. {% for book in books %}
  11. <li><a href="/books{{ book.id }}" rel="external nofollow" >{{ book.btitle }}</a><a href="/delete{{ book.id }}" rel="external nofollow" >_删除</a></li>
  12. {% endfor %}
  13. </ul>
  14. </body>
  15. </html>
  16.  

index.html里有一个create新增按钮,去view.py里添加create处理函数

  1. def create(request):
  2. '''新增一本图书'''
  3. # 1.创建一个bookinfo对象
  4. b = BookInfo()
  5. b.btitle = '流星蝴蝶剑'
  6. b.bpub_date = date(1990, 1, 1)
  7. # 2.保存进数据库
  8. b.save()
  9. # 3.返回应答
  10. # return HttpResponse('ok')
  11. # 让浏览器返回首页
  12. return HttpResponseRedirect('/index')
  13.  

数据库里添加上之后,重定向到首页index。

应用的urls.py文件里要写url(r'^create$',views.create),才能正确的跳转到create处理函数。

一个显示书里人物的details.html,从index.html用book.id去寻找书的数据。

去views.py写details处理函数

  1. def details(request,bid):
  2. book=BookInfo.objects.get(id=bid)
  3. heros=book.heroinfo_set.all()
  4. return render(request,'booktest/details.html',{'book':book,'heros':heros})
  5.  

新建details.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>{{book.btitle}}</h1>
  9. 英雄信息:
  10. <br/>
  11. <ul>
  12. {% for hero in heros %}
  13. <li>{{hero.hname}}--{{hero.hcomment}}</li>
  14. {% empty %}
  15. 没有英雄信息
  16. {% endfor %}
  17. </ul>
  18. </body>
  19. </html>
  20.  

去应用的urls.py里把url地址和视图处理函数对应上

  1. url(r'^books(\d+)$',views.details)
  2.  

这里的(\d+)是需要传参到details视图处理函数。

github:https://github.com/zhangyuespec/Django

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号