### 11.3 图书管理系统#### 11.3.1 出版社的管理

展示:- 设计URL- ```pythonurlpatterns = [url(r'^publisher_list',views.publisher_list)]```- 写函数- ```pythonfrom django.shortcuts import renderfrom app01 import models#展示出版社def publisher_list(request):#从数据库中查询到出版社的信息all_publishers = models.Publisher.object.all()#返回到一个包含出版社信息的页面return render(request,'publisher_list.html',{'all-publishers':all_publishers})```- 写模板- ```html<table boder = '1'><thead><th>序号</th><th>ID</th><th>名称</th></thead>{% for publisher in all_publishers %}<tr><td>{{forloop.counter}}</td>   #自带的功能,生成对应序号<td>{{publisher.pk}}</td>    #pk就是primary key主键<td>{{publisher.name}}</td></tr></table>```新增:```python
obj = models.Publisher.object.create(name=publisher_name)
```删除```python
obj_list = models.Publisher.objects.filter(pk=pk)
obj_list.delete()obj = models.Publisher.objecct.get(pk=pk)
obj.delete()
```编辑```python
#修改数据
#首先要获取数据
obj = models.Publisher.objects.filter(name)   # 不考虑重复、空值等情况
obj.name = publisher_name
obj.save
```#### 11.3.2 书籍管理
```python
class Book(models.Model):title = models.CharField(max_length=32)pub = models.ForeignKey('Publisher',on_delete=models.CASCADE) #级连删除,一个表删除,另一个对应的也会删除

on_delete的参数:models.CASCADE models.SET_DEFAULT models.SET_null
```查询:```python
all_book = models.Book.objects.all()for book in all_book:print(book.title)print(book.pub)   #所关联的出版社对象print(book.pub.pk)   #查id  多了一次查询print(book.pub_id)   #支架在book表中查出的IDprint(book.pub.name)
```新增:```python
models.Book.object.create(title=book_name,pub=出版社的对象)
models.Book.object.create(title=book_name,pub_id=pub_id)
```删除:```python
ps = request.get('id')
models.Book.object.filter(pk=pk).delete()
```编辑:```html
{% if book_obj.pub == publisher%}<option selected value="{{publisher.pk}}">{{publisher.name}}</option>
{% else %}<option value="{{publisher.pk}}">{{publisher.name}}</option>
{% endif %}
``````python
#修改数据
book_obj.title = book_name
book.obj.pub = models.Publisher.objects.get(pk=pub_id)
book_obj.save()
```#### 11.3.3 作者管理1.创建作者表```python
class Author(models.Model):name = models.CharField(max_length=32)book = models.ManyToManFieldy('Book')
```2.展示```python
#展示作者
def author_list(request):#查询到所有对象all_author = models.Author.object.all()return render(request,'author_list.html',{'all_author':all_author})``````html
#写模板
{%  for author in all_author%}<tr><td>{{forloop.counter}}</td><td>{{author.pk}}</td><td>{{author.name}}</td><td>{% for book in author.book.all%}{%  if forloop.last%}《{{book.title}}》{% else %}《{{book.title}}》{%endif%}{%endfor%}</td></tr>
{%endfor%}
```3.增加```python
author_obj = models.Author.objects.create(name=author_name) #只插入到book表中的内容
author_obj = models.set(book)   #设置作者和书籍的多对多的关系
```4.修改```python
book = request.POST.getlist('book')    #获取多个值得时候要用getlist#修改对象的数据
author_obj.name = name
author_obj.save()
#多对多的关系
author_obj.book.set(books)   #每次重新设置
```##### 11.3.3.1 django设置多对多关系的三种方法1.django帮助我们生成第三张表```python
class Author(models.Model):name = models.CharField(max_length=32)books = models.ManyToManyField('Book')  # 不在Author表中生产字段,生产第三张表
```2.自己创建第三场表```python
class AuthorBook(models.Model):author = models.ForeignKey(Author, on_delete=models.CASCADE)book = models.ForeignKey(Book, on_delete=models.CASCADE)date = models.DateField()
```3.自建的表和ManyToMany联合使用```python
class Author(models.Model):name = models.CharField(max_length=32)books = models.ManyToManyField('Book',through='AuthorBook')  # 不在Author表中生产字段,生产第三张表class AuthorBook(models.Model):author = models.ForeignKey(Author, on_delete=models.CASCADE)book = models.ForeignKey(Book, on_delete=models.CASCADE)date = models.DateField()
```

转载于:https://www.cnblogs.com/doraemon548542/p/11595406.html

doraemon的python(大更新) 实例讲解 图书管理系统的配置和应用相关推荐

  1. python 中文分词_python中文分词,使用结巴分词对python进行分词(实例讲解)

    在采集 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词. 其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) ...

  2. Python基于mysql+Django框架图书管理系统源代码(含mysql文件)

    项目前台和后台界面模板都是自己编写,前台采用Bootstrap框架UI,后台EasyUI框架UI,没有采用Django自动生成的那个后台管理,因为那个后台实在是太丑了,丑得惨不忍睹!整个项目主要负责图 ...

  3. python 系统管理_实例讲解python用户管理系统

    本文主要为大家分享一篇python用户管理系统的实例讲解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 自定义函数+装饰器,每一个模块写的一个函数 很多地方能用装 ...

  4. Python+tkinter库实现简单图书管理系统

    文章目录 前言 一.MySQL是什么? 二.Tkinter库 三.Code步骤 1.引入库 2.使用tkinter搭建系统 3.定义函数(发送消息,操作mysql数据库) 总结 前言 使用mysql数 ...

  5. Python框架:Django写图书管理系统(LMS)

    今天我会带大家真正写一个Django项目,对于入门来说是有点难度的,因为逻辑比较复杂,但是真正的知识就是函数与面向对象,这也是培养用Django思维写项目的开始 Django文件配置 Django模版 ...

  6. python实现gui+mysql图书管理系统_用Python Django框架写一个图书管理系统LMS

    今天我会带大家真正写一个Django项目,对于入门来说是有点难度的,因为逻辑比较复杂,但是真正的知识就是函数与面向对象,这也是培养用Django思维写项目的开始 Django文件配置 Django模版 ...

  7. 小程序一:利用Python编写一个简单的图书管理系统

    完成项目的流程: 想要完成某个项目基本都是按这个流程进行编写 想要实现的功能 代码的实现 class Book:def __init__(self,name,author,recommendation ...

  8. Python面向对象实现栈和图书管理系统

    1.实现栈 class Stack():def __init__(self):self.stack = []def push(self,value):self.stack.append(value)r ...

  9. python 图书馆管理程序下载_图书管理系统 免费开源代码 开发,分享 - CodeForge.cn...

    图书管理系统0.00 B01-08-04|10:06 test0.00 B01-08-04|10:06 _vti_cnf0.00 B01-08-04|10:06 news0.00 B01-08-04| ...

最新文章

  1. 国产项目管理软件/敏捷开发工具
  2. linux下启动tlq命令,UNIX/LINUX命令
  3. jQuery异步上传文件
  4. RecyclerView的那点事儿
  5. python字典的常见操作_Python 字典(Dictionary) 基本操作
  6. html下拉框设置默认值_如何设置HTML select下拉框的默认值?
  7. java c++ python哪个好_程序员学java好还是python语言好 c++又如何
  8. 蓝宝石会升级bios吗_别再听别人忽悠!升级BIOS的三大误区
  9. java 安全认证_restful安全认证
  10. Google Volley框架源码走读
  11. 关于[知识竞赛现场管理系统-双屏PPT版]内置的第三方答题平台以及[评委计分系统-双屏专业版]的特殊疑难问题 汇编
  12. 【小程序按钮控制视频播放暂停】
  13. 关于计算机的猜谜游戏,益智猜谜电脑版
  14. 吉林大学计算机学院林丛郁,吉林大学珠海学院201奖学金
  15. 3dmax贴图出现白边解决方法
  16. 数字图像处理(第四版)-冈萨雷斯-学习过程的笔记
  17. ligo 原理_在LIGO的实验中,Ubuntu被用来检测引力波
  18. 智云通CRM:如何发现高附加值客户,让他们直接按原价购买?
  19. 构建关系抽取的动词源
  20. 丰田供应商遭网络攻击关闭日本工厂、英伟达反击勒索团伙以防数据泄露|3月1日全球网络安全热点

热门文章

  1. git与coding远程连接
  2. 废墟里,我和同学立下约定
  3. 北京电信东区电信局 Excel人力资源应用培训
  4. [机缘参悟-58]:《素书》-5-奉行仁义[遵义章第五]
  5. 训练过程曲线分析:acc/loss/val_acc/val_loss
  6. Python-loss和acc曲线分析
  7. 北京大学 软微初试复试 经验总结贴
  8. 食品网站和学校网站设计区别于总结
  9. 【期权、期货及其衍生产品】学习笔记1(期权、远期)
  10. 《期权、期货及其他衍生产品》读书笔记(第五章:确定远期和期货价格)