05 2023 档案
考试题加面试常问问题
摘要:1 编写⼀个函数,接受⼀个字符串作为参数,并返回该字符串的反转结果 2 写出你知道的Python魔法⽅法及作⽤(5个以上) def reverse_string(string): return string[::-1] __init__(self, ...): 初始化⽅法,⽤于在创建对象时进⾏初始化
权限控制
摘要:[toc] # 权限控制 ## ACL(访问控制列表)的权限控制:(针对互联网用户的产品) 用户表 id name password 1 zhangsan 123 权限表 id user_id 权限 1 1 评论权限 2 1 发抖音权限 张三:[评论权限,发抖音权限] ## RBAC(Role-Ba
jwt介绍和原理 JWT认证
摘要:[toc] # 一、cookie,session,token发展历史 -会话管理 -cookie:客户端浏览器的键值对 -session:服务的的键值对(djangosession表,内存中,文件,缓存数据库) -token:服务的生成的加密字符串,如果存在客户端浏览器上,就叫cookie -三部分
drf之全局异常处理和 接口文档
摘要:[toc] # 一、全局异常处理 > 对于前端来讲,后端即便报错,也要返回统一的格式,前端便于处理 {code:999,msg:'系统异常,请联系系统管理员'} 只要三大认证,视图类的方法出了异常,都会执行一个函数: rest_framework.views import exception_han
drf之restful规范中的过滤、排序和分页
摘要:[toc] # 一、过滤 > restful规范中 -请求地址中带过滤条件 带过滤的接口只有:查询所有 ## 内置过滤类 ```python from rest_framework.filters import SearchFilter class BookView(GenericViewSet,
九九乘法表 列表推导式
摘要:[toc] # 一、列表推导(Listcomprehension) 是一种简洁的语法,用于创建、转换或过滤列表的元素。它可以帮助简化常见的列表操作,使代码更加简洁易读。以下是列表推导式的一些常见用法示例 1. 创建一个由数字 0 到 9 组成的列表: ```python numbers = [x f
基础知识
摘要:[toc] 一、 1、print("") 会换行 2、print("",end="") 不会换行 二、 python中经常看到使用\t,\n,\n\t,那么它们有什么区别之处呢? \t :表示空4个字符,类似于文档中的缩进功能,相当于按一个Tab键。 \n :表示换行,相当于按一个 回车键 \n\t
drf之登录功能,认证组件,权限组件,频率组件
摘要:[toc] # 一、登录功能  ## 表模型 ```python class UserInfo(models
drf之2个视图基类,5个视图扩展类,9个视图子类,视图集,自动生成路由
摘要:[toc] # 一、视图之两个视图基类 ## Generic知识总结: ### 视图类: -APIView:之前用过 -GenericAPIView:GenericAPIView继承了APIView ### GenericAPIView -类属性: queryset:要序列化的所有数据 serial
整理和序列化serialize和视图类APIView相关的代码
摘要:[toc] # book表 ## 一、先建好好modelsbook表模型 ```python from django.db import models # Create your models here. class Book(models.Model): name = models.CharFie
drf之反序列化校验源码分析 、 断言 、drf之请求和响应
摘要:[toc] # 一、反序列化校验源码分析 **序列化类的校验功能** > -局部钩子:必须 validate_字段名 -全局钩子: validate ## 入口: -ser.is_valid 才做的校验 》入口 -BookSerializer 》Serializer——-》BaseSerialize
复习之相对导入和绝对导入
摘要:[toc] # 一、模块与包的使用 ## 模块: **一个py文件,被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件** ## 包: **一个文件夹下有__init__.py** # 二、绝对导入和相对导入 > 再次强调:一定要分清楚谁是执行文件!!! 模块的导入全部
drf之序列化source的使用、定制字段的两种方、多表关联反序列化保存、ModelSerializer使用
摘要:[toc] # 一、on_delete属性的补充 **CASCADE:** 级联删除,只要删除publish,跟publish关联的book,全都被删除 **SET_DEFAULT:** 只要删除publish,跟publish关联的book,的publish字段会变成默认值,一定要配合defaul
drf之序列化
摘要:一、Request类源码分析 总结: 1 新的request有个data属性,以后只要是在请求body体中的数据,无论什么编码格式,无论什么请求方式 2 取文件还是从:request.FILES 3 取其他属性,跟之前完全一样 request.method .... -原理是:新的Request重写
drf之Restful规范序列化和反序列,drf介绍和快速使用和APIView源码分析
摘要:一、Restful规范 RESTful是一种定义API接口的设计风格,AIP接口的编写规范,,尤其适用于前后端分离的应用模式中 这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源 我们可以使用任何一个框架都
drf之第一天入门知识
摘要:一.web应用模式 前后端混合开发 -后端人员,既要写后端,django,又要写前端 前后端分离 -后端人员,只写后端,写一个个的API接口 -前端人员,只写前端 -最后项目写完,前后端联调 二、API接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现
富文本编辑器的下载和使用
摘要:富文本编辑器: kindeditor的使用为例 http://kindeditor.net/demo.php 下载 用法 只有这俩有用 其他使用方法看文档说明 编辑器使用方法 1. 下载编辑器 下载 KindEditor 最新版本,下载之后打开 examples/index.html 就可以看到演示
可视化软件Navicat的破解
摘要:1、Navicat简介 Navicat 是一套快速、可靠并价格适宜的数据库管理工具, 适用于三种平台: Windows、mac OS 及 Linux。 可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 等数据库进行管理及开发。 专门为简化数据库的操作而设计。 它的
面试笔之前端状态码大全
摘要:这些状态码被分为五大类: 100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 500-599 用于支持服务器错误。 一些常见的状态码为: 200
点赞点踩图标的制作
摘要:拷贝代码 {# 点赞点踩开始#} <div id="div_digg"> <div class="diggit" onclick="votePost(17391141,'Digg')"> <span class="diggnum" id="digg_count">1</span> </div> <d
文章详情页的制作
摘要:路由地址 这里由于正则匹配路径,所以在站点页面地址re_path('^(?P\w+)/', views.site),的基础上加条件,所以要把新的地址放在站点页面地址的上面,否则可能查到站点页面匹配到就不会往下面查了 #文章详情页 re_path('^(?P<username>\w+)/article
第二节:编程语言与Python介绍
摘要:一 引子 基于上一节所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。 本章的主题是先带大家了解下编程语言,然后重点介绍Python这门编程语言 二 编程语言分类: 2.1 机器语言 机器语言是站在计算机(
侧边栏筛选功能的实现
摘要:一、分析博客园 """ 按照标签筛选 https://www.cnblogs.com/wupeiqi/tag/1/ 按照分类筛选 https://www.cnblogs.com/wupeiqi/category/1/ 按照时间筛选 https://www.cnblogs.com/wupeiqi/ar
个人站点页分类列表展示
摘要:一、导航条换成访问用户的站点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/jque
404页面的定制
摘要:开设路径 # 个人站点页面 re_path('^(?P<username>\w+)/$', views.site), 视图函数返回页面 # 个人站点页面 def site(request, username): # 根据用户名查询用户信息 user_obj = models.UserInfo.obj
BBS文章内容的搭建
摘要:一、文章的框架搭建 1、媒体对象列表 https://v3.bootcss.com/components/#btn-dropdowns <ul class="media-list"> <li class="media"> <div class="media-left"> <a href="#"> <
BBS首页的搭建之导航条and修改密码和退出登录功能的实现
摘要:一、导航条的搭建 html页面 <nav class="navbar navbar-inverse"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div
面试题之GIL全局解释器锁和互斥锁(详细后面补)
摘要:一、全局解释器锁(GIL) 什么是(GIL)全局解释器锁?详细概念 GIL(全局解释器锁)是Python解释器的一个特性。它是一种线程锁,它确保同一时刻只有一个线程可以执行Python字节码。这意味着Python解释器中的多个线程不能同时执行Python代码,而只能交替执行。 GIL的存在是为了保护
第一节:计算机核心基础知识
摘要:一 引子: 接下来一段时间,我们的目标的是:学会使用Python这门编程语言来编写ATM+购物车程序,那么问题来了: 1.1 什么是语言?什么是编程语言?为何要有编程语言? 语言其实就是人与人之间沟通的介质,如英语,汉语,俄语等。 而编程语言则是人与计算机之间沟通的介质。 那么为何要有编程语言,或者
面试题之数据库存储引擎
摘要:复习老师讲得 什么是存储引擎? 数据库针对数据采取的多种存取方式 如何查看常见存储引擎的方式? show engines; 需要了解的四个存储引擎 MyISAM MySQL5.5之前默认的存储引擎 存取数据的速度快 但是功能较少 安全性较低 InnoDB MySQL5.5之后默认的存储引擎 支持事务
登陆功能
摘要:本功能需求: -使用Ajax提交数据信息 -渲染用户名密码不符合要求的错误信息 -登陆后可以实现登出当前账号 拓展需求: -登陆时判断用户是否被冻结 -登陆时使用登陆表单进行验证 一、添加路由 在urls.py中添加 1、登陆路由 path('login/', views.login, name='
注册功能
摘要:本功能基本需求: 使用forms组件 使用Ajax提交数据信息 支持上传头像 拓展需求: 注册时鼠标移开用户名输入框并点击页面其它任何部分时,自动校验输入的用户名是否已存在 一、添加路由 注意点:在路由urls.py中要先导入视图层和一些用到的模块 from django.contrib impor
BBS数据库表结构设计
摘要:BBS数据表表结构设计 在我们分析完一个项目的需求之后,我们着手开发项目所需要做的第一件事就是设计数据库和表结构及其字段。 一般来说,设计一个数据库的表一般要注意以下三点: 第一,把项目的需求转化为一个个数据库中的表 第二,探寻表与表之间的关联关系 第三,牢记以下原则:能用多对多关联关系就尽量不要用
项目开发流程
摘要:第一节:项目开发流程 BBS-个人博客项目完整搭建 我们将会用前面所有学到的知识进行综合运用,从0开始完成一个django框架的web实战项目——多用户个人博客的搭建 项目开发流程 在正式开发这个项目之前,首先我们必须了解一套完整的项目开发流程 一、项目分类 现在互联网公司需要开发的主流web项目一
Django之csrf跨站请求
摘要:#CSRF_TOKEN跨站请求伪造 介绍:浅谈CSRF(Cross-site request forgery)跨站请求伪造 在form表单中应用: <form action="" method="post"> {% csrf_token %} <p>用户名:<input type="text" na
Django之auth认证模块
摘要:前戏: django自带一个admin路由 但是需要我们提供管理员账号和密码 如果想要使用admin后台管理 需要先创建表 然后创建管理员账号,直接执行数据库迁移命令即可产生默认的auth_user表 该表就是admin后台管理默认的认证表 auth模块封装了cookie和session还有很多之前
面试题之常见网络攻击及防御方法总结(XSS、SQL注入、CSRF攻击)、密码加密问题
摘要:背景知识 从互联网诞生之初起,无时无刻不存在网络攻击,其中XSS攻击和SQL注入攻击是网站应用攻击的最主要的两种手段,全球大约70%的网站应用攻击都来自XSS攻击和SQL注入攻击。此外,常用的网站应用攻击还包括CSRF、Session劫持等。 一、XSS 攻击 全称跨站脚本攻击 Cross Site
Django之中间件
摘要:一、什么是中间件 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能 Django中间件的定义: Middleware is a framework of ho
Cookie与Session CBV中加装饰器
摘要:目录 一.会话跟踪技术 什么是会话跟踪? 我们需要先了解一下什么是会话。可以把会话理解为客户端和服务端之间的一次会晤,在一次会晤中可能会包含多次请求和响应。 例如你给10086打个电话,你就是客户端,而10086就是服务端。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过
Ajax
摘要:目录 @(文章目录) 一、Ajax AJAX简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。 AJAX 不是新
Django内置序列化组件(drf前身)和批量操作数据 分页器的使用
摘要:目录 一、django内置序列化组件(drf前身) 这里的内置序列化组件,其实就是实现将后端数据,存放到字典中或是存放到列表中有序输出。 方式一 这里是我们用JsonResponse模块自己实现的代码 '''前后端分离的项目 视图函数只需要返回json格式的数据即可''' from app01 im
Django之模型层(二) Q查询进阶 ORM查询优化 ORM事务 ORM常用字段类型和字段参数 多对多创建方式
摘要:目录 一、Q查询进阶操作 这里主要就是让查询数据的时候,可以使用input获取的信息,进行用户交互。 from django.db.models import Q q_obj = Q() # 1.产生q对象 q_obj.connector = 'or' # 默认多个条件的连接是and可以修改为or