内容回顾

1.django处理请求的流程:

1. 在浏览器的地址栏输入地址,回车发get请求;
2. wsgi模块接收请求;
3. 在urls.py文件中匹配地址,找到对应的函数;
4. 执行函数,返回响应。 2.发请求的方式: 1. 输入地址 —— GET
2. form 默认是get
3. form 发post请求
4. a标签 get 3.函数的返回值 HttpResponse('显示的内容') —— 》 字符串 render(request,'HTML文件名', { 'k1': v1 } ) —— 》 完整的HTML页面 redirect('要跳转的地址') ——》 重定向 Location: ‘'要跳转的地址’ 4.外键 表示多对一的关系 for book in Book.objects.all(): # 所有的书籍对象
book.id # 主键
book.name # 名称
book.pub # 书籍关联的出版社对象
book.pub_id # book表中对应出版社的ID # 增加
Book.objects.create(name='xxxx',pub_id='111')
Book.objects.create(name='xxxx',pub=pub_obj)
# 删除
Book.objects.get(pk=1).delete()
Book.objects.filter(pk=1).delete()
# 编辑
book_obj.name = 'new name'
book_obj.pub_id = '11'
book_obj.pub =pub_obj
book_obj.save() 5.模板的语法 {% if xxx == xxx %} xxxx {% elif 条件 %} www {% else %} xxx {% endif %} 今日内容 多对多的关系 作者的增删改查 model: # 作者
class Author(models.Model):
name = models.CharField(max_length=32, unique=True)
books = models.ManyToManyField('Book') 展示: for author in all_authors:
print(author)
print(author.pk)
print(author.name)
print(author.books, type(author.books)) # 多对多关系管理对象
print(author.books.all(), type(author.books.all())) # 多对多关系管理对象
print('*' * 30) 增加: name = request.POST.get('name')
books_id = request.POST.getlist('books_id') # 插入到数据库中
author_obj = models.Author.objects.create(name=name)
# 绑定书籍和作者的关系
author_obj.books.set(books_id) 正向查询: 多对多字段在作者表中: 作者 ——》 书籍 author_obj.books ——》 多对多的管理对象 author_obj.books.all() ——》 当前作者所关联的所有书籍对象 反向查询: 书籍 ——》 作者 book_obj.author_set ——》 多对多的管理对象 book_obj.author_set .all() ——》 当前书籍所关联的所有作者对象

day61 Pyhton 框架Django 04的更多相关文章

  1. day60 Pyhton 框架Django 03

    day61 内容回顾 1.安装 1. 命令行: pip install django==1.11.18 pip install django==1.11.18 -i 源 2. pycharm sett ...

  2. pyhton框架Django之cookie和session

    一,cookie和session的理解 cookies 是浏览器为 Web 服务器存储的一小段信息. 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies.它保存在浏览器下的某个文 ...

  3. day64 Pyhton 框架Django 07

    day67 内容回顾 视图 1. CBV 定义 from django.views import View class Addpub(View): def get(self,request): sel ...

  4. day63 Pyhton 框架Django 06

    内容回顾 1.装饰器 装饰器:是一个闭包函数,在不改变原函数的代码和调用方式的基础上,给原函数增加功能. def wrapper(func): def inner(*args,**kwargs): # ...

  5. day62 Pyhton 框架Django 05

    内容回顾 1.变量 render(request,'模板文件名',{ k1:v1 }) {{ k1 }} {{ list.0 }} {{ dict.key }} {{ dict.keys }} {{ ...

  6. day58 Pyhton 框架Django 01

    内容回顾 python基础    网路编程    并发编程    数据库    前端     osi7层           tcp/ip 5层模型    应用层    表示层             ...

  7. python运维开发(十七)----jQuery续(示例)web框架django

    内容目录: jQuery示例 前端插件 web框架 Django框架 jQuery示例 dom事件绑定,dom绑定在form表单提交按钮地方都会绑定一个onclick事件,所有查看网站的人都能看到代码 ...

  8. Web框架——Django笔记

    Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序   ...

  9. Python3.5学习十八 Python之Web框架 Django

    Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...

随机推荐

  1. maven配置settings.xml【阿里云】

    <?xml version="1.0" encoding="utf-8"?> <settings xmlns="http://mav ...

  2. 使用fiddler和安卓模拟器抓取安卓客户端数据包

    安卓模拟器要选可以桥接网络的,本文中用的是雷电模拟器. 软件的安装都很简单,在此不再赘述. fiddler中的设置 首先,打开fiddler,点击Tools选项卡下的Options. 切换到https ...

  3. 3896. 【NOIP2014模拟10.26】战争游戏

    鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...

  4. J2EE之JavaScript(1)

    声明:此博客仅供记录自己的学习记录和随笔,看看就行了,就图一乐!   本篇学习随笔来自JavaScript 菜鸟教程:https://www.runoob.com/js/js-howto.html J ...

  5. Linux rndis_host 驱动的一个BUG与解决方案

    关键字 rndis_host, linux, kernel, modem 综述 rndis 是微软定义的一套通讯方案.类似的协议还有 qmi/mbim/ecm/ncm. rndis 协议足够简单,可靠 ...

  6. JsonPath使用教程

    application/json标识Json数据格式,是Http请求常见的一种Content-Type.我们经常也会看到接口返回数据类型为json格式.功能测试/自动化脚本里,经常会需要提取json数 ...

  7. netty之decoder

    转载自:https://blog.csdn.net/jzft_nuosu/article/details/80341018 netty的handler和decoder中的channelRead和dec ...

  8. python文档翻译之使用python解释器

    Python解释器通常安装在/usr/local/bin/python3.6,把/usr/local/bin目录设置到UNIX shell的搜索路径就可以使用下面的命令运行python: python ...

  9. Java12新特性

    switch表达式(预览) 传统switch的缺点 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量 ...

  10. 分享一些好用的 Chrome 插件!

    使用浏览器扩展程序可以使你的工作效率提高数倍不止,那么下面我就向大家分享一下我日常使用的扩展,可能大多数扩展大家都已经在使用了,不过也难免有一两个是你不知道的. 以下排名并不分先后,请坚持看到最后,或 ...