doraemon的python(大更新) 实例讲解 图书管理系统的配置和应用
### 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(大更新) 实例讲解 图书管理系统的配置和应用相关推荐
- python 中文分词_python中文分词,使用结巴分词对python进行分词(实例讲解)
在采集 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词. 其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) ...
- Python基于mysql+Django框架图书管理系统源代码(含mysql文件)
项目前台和后台界面模板都是自己编写,前台采用Bootstrap框架UI,后台EasyUI框架UI,没有采用Django自动生成的那个后台管理,因为那个后台实在是太丑了,丑得惨不忍睹!整个项目主要负责图 ...
- python 系统管理_实例讲解python用户管理系统
本文主要为大家分享一篇python用户管理系统的实例讲解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 自定义函数+装饰器,每一个模块写的一个函数 很多地方能用装 ...
- Python+tkinter库实现简单图书管理系统
文章目录 前言 一.MySQL是什么? 二.Tkinter库 三.Code步骤 1.引入库 2.使用tkinter搭建系统 3.定义函数(发送消息,操作mysql数据库) 总结 前言 使用mysql数 ...
- Python框架:Django写图书管理系统(LMS)
今天我会带大家真正写一个Django项目,对于入门来说是有点难度的,因为逻辑比较复杂,但是真正的知识就是函数与面向对象,这也是培养用Django思维写项目的开始 Django文件配置 Django模版 ...
- python实现gui+mysql图书管理系统_用Python Django框架写一个图书管理系统LMS
今天我会带大家真正写一个Django项目,对于入门来说是有点难度的,因为逻辑比较复杂,但是真正的知识就是函数与面向对象,这也是培养用Django思维写项目的开始 Django文件配置 Django模版 ...
- 小程序一:利用Python编写一个简单的图书管理系统
完成项目的流程: 想要完成某个项目基本都是按这个流程进行编写 想要实现的功能 代码的实现 class Book:def __init__(self,name,author,recommendation ...
- Python面向对象实现栈和图书管理系统
1.实现栈 class Stack():def __init__(self):self.stack = []def push(self,value):self.stack.append(value)r ...
- 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| ...
最新文章
- 国产项目管理软件/敏捷开发工具
- linux下启动tlq命令,UNIX/LINUX命令
- jQuery异步上传文件
- RecyclerView的那点事儿
- python字典的常见操作_Python 字典(Dictionary) 基本操作
- html下拉框设置默认值_如何设置HTML select下拉框的默认值?
- java c++ python哪个好_程序员学java好还是python语言好 c++又如何
- 蓝宝石会升级bios吗_别再听别人忽悠!升级BIOS的三大误区
- java 安全认证_restful安全认证
- Google Volley框架源码走读
- 关于[知识竞赛现场管理系统-双屏PPT版]内置的第三方答题平台以及[评委计分系统-双屏专业版]的特殊疑难问题 汇编
- 【小程序按钮控制视频播放暂停】
- 关于计算机的猜谜游戏,益智猜谜电脑版
- 吉林大学计算机学院林丛郁,吉林大学珠海学院201奖学金
- 3dmax贴图出现白边解决方法
- 数字图像处理(第四版)-冈萨雷斯-学习过程的笔记
- ligo 原理_在LIGO的实验中,Ubuntu被用来检测引力波
- 智云通CRM:如何发现高附加值客户,让他们直接按原价购买?
- 构建关系抽取的动词源
- 丰田供应商遭网络攻击关闭日本工厂、英伟达反击勒索团伙以防数据泄露|3月1日全球网络安全热点