随笔分类 - Django
摘要:一、二叉树 二叉树是一种特殊的树,其特点如下: 二叉树每个节点最大只能有两个节点。 二叉树的子树也就是节点有左右之分,即左节点和右节点,次序不能乱。 二叉树即使只有一个子树,也有左右之分。 二、满二叉树 一种特殊的二叉树,其所有的分支节点都有两棵树,其所有的叶子节点都在同一层内。 所有的叶子节点都在
阅读全文
摘要:两个例子: 使用模板 from django.shortcuts import render, HttpResponse from rest_framework.views import APIView class Order(APIView): def get(self, request, *ar
阅读全文
摘要:当用户提交评论的时候,比如如下评论内容 这样当现实评论的时候会先弹出111弹框,再显示评论。这就是xss攻击。 所以,我们需要对评论内容进行检测,对恶意代码进行删除,不让不存到数据库。 如下解决方案:
阅读全文
摘要:环境准备: 表结构 表数据 执行过程: 当反向查询的时候,通过Publisher表查询Book表数据。 异常情况: list index out of range 提示index超出范围。 当p_id=3的时候,查询不到对象,就不会报错。 结束!
阅读全文
摘要:1、csrf攻击过程 csrf攻击说明: 1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A; 3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网
阅读全文
摘要:一、WSGI接口 WSGI服务网关接口:Web Server Gateway Interface缩写。 WSGI是python定义的Web服务器和Web应用程序之间或框架之间的通用接口标准。 WSGI定义:Web开发者实现了一个函数,并响应HTTP请求。 WSGI将Web组件分成三类:Web服务器(
阅读全文
摘要:表结构 插入数据 正向查询: 外键所在表去查另一张表,Book >> Publisher 反向查询:普通表去查外键所在的表,Publisher >> Book 正向查询,基于对象跨表查询 跨表查询,利用双下划线跨表查询 反向查询 对象查询 obj.表名_set() 基于双下划线 附带django里面
阅读全文
摘要:session机制采用的是一种在客户端与服务端之间保持状态的解决方案,由于采用服务器端保持状态的方案在客户端也要保存标识,session机制也要借助于cookie机制达到目的。session保存了客户的登录信息,但是不需要把用户的所有信息都保存在session中,我们只需要让与用户数据关联的信息保存
阅读全文
摘要:1. queryset是查询集,就是传到服务器上的url里面的内容。Django会对查询返回的结果集QerySet进行缓存,这里是为了提高查询效率。 也就是说,在你创建一个QuerySet对象的时候,Django并不会立即向数据库发出查询命令,只有在你需要用到这个QuerySet的时候才回去数据库查
阅读全文
摘要:一、HTML HTML由一些普通文本组成。如果服务器通过XMLHTTPRequest发送HTML,文本将存储在responseText属性中。 从服务器端发送的HTML的代码在浏览器端不需要用JavaScript进行解析。 可以直接使用innerHTML属性把服务器传输过来的HTML文本插入到页面中
阅读全文
摘要:1、settings.py没有注释到csrf。当post请求的方式会报错。 接下来就解决问题! 1.FBV:情况一:csrf打开,个别不需要csrf认证。在方法的上方加@csrf_exempt 。这是全局使用csrf。 2.FBV:情况二:csrf注释,个别需要csrf认证。加@csrf_prote
阅读全文
摘要:CBV是基于反射实现根据请求方式不同,执行不同的方法。 请求流程:view源码解析 1.urls.py :请求一定来执行视图下的as_view方法。也可以直接点击as_view()来找源码。 2.views.py 视图内没有as_view方法,则找父级的as_view方法。 3.源码:as_view
阅读全文
摘要:一,CBV,基于反射实现根据请求方式不同,执行不同的方法。 二,什么是接口? urls.py views.py url访问接口: 三,Django FBV、CBV url必须继承as.view() 视图必须继承view. 这是固定搭配 运行结果:get请求 运行结果:post请求 用一个工具,模拟发
阅读全文
摘要:auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate() 提供了用户认证,即验证用户名以及密码是否正确,一般需要username password两个关键字参数如果认证
阅读全文
摘要:前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做
阅读全文
摘要:我们的博客侧边栏有四项内容:最新文章、归档、分类和标签云。这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。更好的解决方案是直接在模板中获取,为此,我们使用 Dja
阅读全文
摘要:侧边栏已经正确地显示了最新文章列表、归档、分类等信息。现在来完善归档和分类功能,当用户点击归档下的某个日期或者分类下的某个分类时,跳转到文章列表页面,显示该日期或者分类下的全部文章。 归档页面 要显示某个归档日期下的文章列表,思路和显示主页文章列表是一样的,回顾一下主页视图的代码: blog/vie
阅读全文
摘要:在我们的博客侧边栏有分类列表,显示博客已有的全部文章分类。现在想在分类名后显示该分类下有多少篇文章,该怎么做呢?最优雅的方式就是使用 Django 模型管理器的annotate方法。 模型回顾 回顾一下我们的模型代码,Django博客有一个Article和Category模型,分别表示文章和分类:
阅读全文
摘要:#先来归纳一下整个流程 #(1)首先is_valid()起手,看seld.errors中是否值,只要有值就是flase #(2)接着分析errors.里面判断_errors是都为空,如果为空返回self.full_clean(),否则返回self._errors #(3)现在就要看full_clean(),是何方神圣了,里面设置_errors和cleaned_data这两个字典,一个存错误字段,...
阅读全文
摘要:Django forms 关于select和checkbox设置初始选中值 Django的forms和models一样很牛逼。他有两种功能,一是生成form表单,还有就是form表单的验证。 这里主要说一下生成form表单时经常用到的需要设置 初始值 / 默认值 的情况。 1. 前端在展示check
阅读全文