11 2022 档案

摘要:from django.shortcuts import render,HttpResponse from rest_framework.pagination import PageNumberPagination from rest_framework.views import APIView f 阅读全文
posted @ 2022-11-30 23:13 powfu 阅读(15) 评论(0) 推荐(0) 编辑
摘要:一组预先编译好的SQL的集合 语法: create proceduce 存储过程名(参数列表) begin 存储过程体(一组合法有效的SQL语句) end 其中参数列表包含三部分 参数模式:in 该参数可以作为输入,也就是该参数需要调用方传入值 out 该参数可以作为输出,也就是该参数可以作为返回值 阅读全文
posted @ 2022-11-30 23:00 powfu 阅读(38) 评论(0) 推荐(0) 编辑
摘要:序列化 序列化:由于我们在数据库中获取的数据是queryset类型,无法向前端返回json,这一部分需要自己转换,rest的序列化可以提供这个关系转化。 不使用drf序列化实现 def get(self,request,*args,**kwargs): #方式一:django中queryset类型转 阅读全文
posted @ 2022-11-28 23:20 powfu 阅读(77) 评论(0) 推荐(0) 编辑
摘要:DRF组件--权限功能 自己定义一个权限类,其中必须包含has_permission方法 class MyPermission(object): #创建一个权限类。里面写具体的权限划分 def has_permission(self,request,view): if request.user.us 阅读全文
posted @ 2022-11-27 23:52 powfu 阅读(16) 评论(0) 推荐(0) 编辑
摘要:DRF 认证功能 自己定义一个认证类,其中类中必定要有authenticate方法 class MyAuthentication(): def authenticate(self,request): token = request._request.GET.get('token') token_ob 阅读全文
posted @ 2022-11-27 23:40 powfu 阅读(31) 评论(0) 推荐(0) 编辑
摘要:缓存 缓存的作用是缓解服务器压力,或者者说是数据库的压力,我们可以将一些常用的页面或数据放入缓存中,用户查询时,直接去缓存里面查,以此来缓解服务器压力 django提供的缓存 1.数据库缓存 1、全局缓存 settings配置 调用缓存的方法 直接视图函数调用 路由中调用 2、局部缓存 2.文件缓存 阅读全文
posted @ 2022-11-27 23:26 powfu 阅读(43) 评论(0) 推荐(0) 编辑
摘要:python使用rabbitMQ 生产者消费者模型 生产者 import pika import random #创建凭证 credentials = pika.PlainCredentials('guest','guest') #新建一个连接 connection = pika.BlockingC 阅读全文
posted @ 2022-11-27 21:57 powfu 阅读(87) 评论(0) 推荐(0) 编辑
摘要:MQ的概念 优点: 1.应用解耦,提升系统容错性和可维护性 图中,假如不加入MQ,如果库存系统宕机,则会导致订单系统宕机,从而导致整个分布式宕机。 2.异步提速,提高系统的吞吐量和用户体验 不使用MQ 使用MQ 采用MQ后,用户下订单后,订单系统直接返回下订单成功,不管后面其他系统如何处理。对于用户 阅读全文
posted @ 2022-11-27 17:48 powfu 阅读(28) 评论(0) 推荐(0) 编辑
摘要:哈希 特点 由field和关联的value组成的键值对 field和value是字符串类型 一个hash的key可以存储2^32-1个值 优缺点: 常用命令 增 HSET key field value 设置当个字段 HSETNX key field value NX not exists指的是里面 阅读全文
posted @ 2022-11-27 16:37 powfu 阅读(17) 评论(0) 推荐(0) 编辑
摘要:django解决跨域的问题 使用django-cors-headers库 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddle 阅读全文
posted @ 2022-11-20 22:46 powfu 阅读(7) 评论(0) 推荐(0) 编辑
摘要:django与nginx 其中在nginx与uWSGI中,推荐使用uwsgi协议,因为是二进制协议,传输快 如图 nginx配置 uwsgi配置 阅读全文
posted @ 2022-11-20 22:37 powfu 阅读(74) 评论(0) 推荐(0) 编辑
摘要:nginx是一个高性能的反向代理的一种web服务,与正向代理不同的是,正向代理一般是代理客户端,而反向代理则是代理服务器。对于用户的感觉而言,虽然他访问的是我们后台的web服务,但是其实他访问的是我们的nginx服务器,这是因为我们nginx代理的后端web服务器。 Nginx的功能 1.反向代理 阅读全文
posted @ 2022-11-20 22:33 powfu 阅读(24) 评论(0) 推荐(0) 编辑
摘要:由于我们用到平时runserver启动django服务是django给我们提供一个专门测试用的启动服务,他提供的请求量不大,如果多人请求,可能会造成崩溃,所以一般采用uWSGI服务来启动django WSGI: pip install uwsgi Web服务器网关接口,是python应用程序或框架和 阅读全文
posted @ 2022-11-20 22:24 powfu 阅读(62) 评论(0) 推荐(0) 编辑
摘要:MTV和MVC就是指功能模块划分,django属于标准的MTV MVC: M-->model 数据库模型相关 V-->Views 视图相关 C-->Controllers 业务逻辑处理 MTV M-->model 数据库模型相关 T-->templates 模板 V-->Views 业务逻辑处理 阅读全文
posted @ 2022-11-20 22:10 powfu 阅读(19) 评论(0) 推荐(0) 编辑
摘要:django连接数据库 django中默认使用的数据库时sql-lite数据库,如果更改为mysql数据库,则在setting中更改配置,而且django默认连接mysql的连接方式为mysqldb,如需更改连接方式,则在init.py中,如果django中某个应用需要用到orm操作,则还需在set 阅读全文
posted @ 2022-11-20 22:07 powfu 阅读(17) 评论(0) 推荐(0) 编辑
摘要:xss 原理:用户在与数据库交互的地方写一些js脚本,提交给数据库,然后其他用户再访问的时候,服务器将这些js脚本作为字符串返回给页面,然后这些js脚本被浏览器解析,然后发生给xss攻击。 django默认已经防止xss攻击了。只要不在前端页面增加{{ msg |safe }}就不会发生xss攻击。 阅读全文
posted @ 2022-11-20 17:25 powfu 阅读(29) 评论(0) 推荐(0) 编辑
摘要:cookie与session的区别 由于http是一种无状态协议,无法保持一种会话的状态,所以可以使用cookie和session保持会话的状态 cookie 保存在用户浏览器端的键值对,cookie是由服务端创建的并将其发送给客户端浏览器。以后每次客户端向该服务端发送请求时,都携带该cookie。 阅读全文
posted @ 2022-11-20 17:15 powfu 阅读(165) 评论(0) 推荐(0) 编辑
摘要:django中的视图函数分为两类,CBV和FBV FBV: 一条路由对应一个函数 CBV: 一条路由对应一个类,该类必须继承from django.views import View类 urlpatterns = [ re_path(r'^login.html$', views.Login.as_v 阅读全文
posted @ 2022-11-20 16:27 powfu 阅读(29) 评论(0) 推荐(0) 编辑
摘要:中间件 当用户发送请求时,其实时候是将请求发送给wsgi(一种协议),django使用的是wsgiref,然后再将请求发送给django的各个中间件(settings里的MIDDLEWARE表示使用的中间件),再由中间件发送给django的路由系统。 django的中间件执行流程 如何自定义中间件 阅读全文
posted @ 2022-11-19 23:29 powfu 阅读(22) 评论(0) 推荐(0) 编辑
摘要:django路由系统 --动态路由 # urls.py urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), re_path(r'edit/(\w*)/', views.edit), #动态路由,支 阅读全文
posted @ 2022-11-19 23:17 powfu 阅读(35) 评论(0) 推荐(0) 编辑
摘要:--安装 pip install django --创建一个django项目 django-admin startproject 项目名 --创建一个应用 python manage.py startapp app01 --启动django项目 python mange.py runserver i 阅读全文
posted @ 2022-11-19 23:07 powfu 阅读(17) 评论(0) 推荐(0) 编辑
摘要:线程由于是在同一个进程中,所以线程间通信使用全局变量进行通信 共享资源: 多个线程都可以操作的资源为共享资源,对共享资源的操作代码段称为临界区。对共享资源的无序操作可能会带来数据的混乱,或者操作错误。此时往往需要同步互斥机制协调操作顺序。 --同步机制:比如消息队列,管道就属于同步机制 --互斥机制 阅读全文
posted @ 2022-11-19 22:53 powfu 阅读(22) 评论(0) 推荐(0) 编辑
摘要:pipe管道 概念:在内存中开辟管道空间,生产一个管道对象,多个进程使用同一个管道 '''管道通信 multiprocessing中管道通信只能用于有亲缘关系进程中,即父子进程,兄弟进程 2.管道对象在父进程中创建,子进程通过父进程获取 ''' from multiprocessing import 阅读全文
posted @ 2022-11-19 22:38 powfu 阅读(17) 评论(0) 推荐(0) 编辑
摘要:协程: 基本概念:在一个线程中的某个函数,可以在任何地方保存当前函数的一些临时变量等信息,然后切换到另外一个函数中执行,注意不是通过调用函数的方式做到的,并且切换的次数以及什么时候再切换到原来的函数都由开发者自己确定。总的来说就是能在函数执行过程中挂起,去执行其他异步函数,等挂起条件消失后,再回来执 阅读全文
posted @ 2022-11-18 22:43 powfu 阅读(108) 评论(0) 推荐(0) 编辑
摘要:由于http协议无状态,一次请求,一次响应。无法保持持续的连接,而websocket协议可以创建连接持久连续不断的连接,基于这个连接,可以持续收发数据。常用场景:web聊天室实时监控平台,一些图表等。原理: 建立在http协议之上--连接,客户端发起--握手,客户端发送消息,后端接收到消息后再做一些 阅读全文
posted @ 2022-11-18 00:00 powfu 阅读(78) 评论(0) 推荐(0) 编辑
摘要:孤儿进程: 原因:由于 父进程 比 子进程 先结束退出掉,此时子进程将成为孤儿进程 孤儿进程不会一直存在,孤儿进程最终会被系统进程收养,此时系统进程就会成为孤儿进程的父进程,等孤儿进程结束退出后,系统进程就会自动处理掉。 from time import sleepimport os,sysdef 阅读全文
posted @ 2022-11-17 23:42 powfu 阅读(28) 评论(0) 推荐(0) 编辑
摘要:线程: 线程是系统分配给内核的最小单元,线程是进程的一部分。 特点: 1.一个进程可以包含多个线程 2.线程也是一个运行行为,消耗计算机资源 3.一个进程中的所有线程共享这个进程的资源 4.多个线程之间运行互不影响 5.线程的创建和销毁所消耗的资源非常少 6.各个线程也有自己的属性,比如线程id等特 阅读全文
posted @ 2022-11-17 22:59 powfu 阅读(29) 评论(0) 推荐(0) 编辑
摘要:长轮询 即前端每隔一段时间就发送一次请求。当服务端接收请求的时候,我们先查询是否有前端想要的数据,如果有则返回,如果没有,则先将请求hang住一段时间,比如30s,如果这30s内。服务端有客户端想要的数据了,则直接返回。如果30s还没有返回,则给前端返回空。前端接收后,立刻发另一个请求,以此往复。一 阅读全文
posted @ 2022-11-16 23:48 powfu 阅读(214) 评论(0) 推荐(0) 编辑
摘要:轮询 即每隔2s去询问后端有没有想要的数据,如果有则返回数据。如果没有,则等一次的2s到了,再去询问 优点:实现简单 缺点:需要重复建立http连接,占用客户端服务端大量的资源 客户端越多,服务端压力越大,如果数据更新慢。大部分都是无效请求 数据不一定实时更新,需要看设定的时间间隔,存在延迟 <ht 阅读全文
posted @ 2022-11-16 23:40 powfu 阅读(256) 评论(0) 推荐(0) 编辑
摘要:并发: 计算机一个内核处理多个任务,其实就是内核在任务间不停的切换,达到好像多个任务同时在执行,实际上每个时刻只有一个任务在执行 并行: 多个任务利用计算机的多核同时执行,达到并行的效果 进程: 进程是程序在计算机种运行,代表是的是程序运行的一个状态 进程的状态: 就绪态:进程具备执行条件,等待cp 阅读全文
posted @ 2022-11-16 23:10 powfu 阅读(70) 评论(0) 推荐(0) 编辑
摘要:isinstance() 用来判断一个实例是否是已知的对象 type() 查看实例的对象 a = 2 print(isinstance(a,int)) print(type(a)) 阅读全文
posted @ 2022-11-14 23:23 powfu 阅读(18) 评论(0) 推荐(0) 编辑
摘要:--反射 可以用过字符串的形式来操作(增删改查)一个对象的属性 有几种方法 getattr()获取 hasattr()判断 setattr()赋值 delattr()删除 class Person(object): def __init__(self,name,age): self.name = n 阅读全文
posted @ 2022-11-14 23:17 powfu 阅读(9) 评论(0) 推荐(0) 编辑
摘要:__call__方法 通过 实例名() 进行调用该方法 class school(): def __init__(self): pass def __call__(self, *args, **kwargs): print('我来自清华') sch = school() sch() class sc 阅读全文
posted @ 2022-11-14 23:09 powfu 阅读(33) 评论(0) 推荐(0) 编辑
摘要:django的日志使用python的logging模块 logging的四个模块 logger-记录器: 日志系统的入口,每个logger都是bucket,可以向这个bucket写入需要处理的信息,logger根据消息的日志级别来进行处理,接收来自大于logging定义的级别的消息,交给handle 阅读全文
posted @ 2022-11-14 22:42 powfu 阅读(291) 评论(0) 推荐(0) 编辑
摘要:类方法与静态方法 类方法:类方法通过@classmethod装饰器实现,类方法与普通方法的区别是,类方法只能访问类变量,不能访问实例变量。因为添加classmethod后,self不代表实例,而代表类本身,所以类方法可以直接用类去调用,也可以用实例对象去调用。 静态方法:静态方法不能访问类变量,也不 阅读全文
posted @ 2022-11-13 23:32 powfu 阅读(20) 评论(0) 推荐(0) 编辑
摘要:对象继承 单继承:即继承父类的属性方法 super()方法 场景:既想用父类的__init__属性,又想用自己的__init__属性,如果不在子类中加这个函数,直接在子类写__init__,那么会重写父类__init__,相当于覆盖。 以下中在子类的__init__方法中使用 super().__i 阅读全文
posted @ 2022-11-13 22:43 powfu 阅读(15) 评论(0) 推荐(0) 编辑
摘要:OS模块 SYS模块 time模块 datetime模块 阅读全文
posted @ 2022-11-13 22:28 powfu 阅读(15) 评论(0) 推荐(0) 编辑
摘要:闭包: 正常情况下,上例中a变量在return语句后,a变量会被释放。但由于内部inner函数继续调用a变量,导致a变量没有被释放。这种现象叫闭包 def outer(): a=1 def inner(): print(a) return inner #在这并没有执行inner函数。只是返回inne 阅读全文
posted @ 2022-11-13 22:19 powfu 阅读(18) 评论(0) 推荐(0) 编辑
摘要:迭代器: 迭代器是访问可迭代对象的工具,用iter(obj)函数返回对象实例,再用next(it)获取迭代对象的数据。 好处:我们在访问可迭代对象是,加入迭代对象很大,如果直接访问,占用大量内存,通过迭代器,一个一个的访问,减少内存的使用 I = [1,3,5,7,9] it = iter(I) p 阅读全文
posted @ 2022-11-13 22:00 powfu 阅读(26) 评论(0) 推荐(0) 编辑
摘要:生成器 我们在函数中使用yield,这个函数就是生成器函数。 生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。 以下面的案例举例:当主函数f = fib(10)执行时,fib函数不会被立即调 阅读全文
posted @ 2022-11-13 21:54 powfu 阅读(57) 评论(0) 推荐(0) 编辑
摘要:--栈 #规则:先进后出,只能对栈顶进行操作 #应用:浏览器的返回 实现方式一 以列表尾部作为栈的顶端 class Stack(): def __init__(self): self.items = [] def push(self,item): #往栈追加一个元素 self.append(item 阅读全文
posted @ 2022-11-13 21:34 powfu 阅读(14) 评论(0) 推荐(0) 编辑
摘要:re正则表达式模式 正则的贪婪匹配: python的re正则默认就是采用贪婪匹配,所谓贪婪匹配就是尽可能的匹配更多的字符,在下面案例中(\d+)就是采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。 想要让 “\d+” 采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来, 阅读全文
posted @ 2022-11-13 16:40 powfu 阅读(90) 评论(0) 推荐(0) 编辑
摘要:--re.match()方法 语法:re.match(pattern,string,flags) 其中flags表示的标志位。有以下几种 re.I 忽略大小写re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境re.M 多行模式re.S 即为 . 并且包括换行符在内 阅读全文
posted @ 2022-11-13 16:35 powfu 阅读(709) 评论(0) 推荐(0) 编辑
摘要:--map函数的用法 语法map(function,iterable1,iterable2) 说明:function中参数值可以是一个,也可以是多个;iterable代表function运算中的参数值,有几个参数值就传入几个iterable 注意:1.迭代器需要进行列表转换 2.map中如果传入的序 阅读全文
posted @ 2022-11-12 23:26 powfu 阅读(217) 评论(0) 推荐(0) 编辑
摘要:python对内存回收引用几个概念 计数器:当python程序运行时,会根据数据类型的不同找到相对应的结构体,根据结构体中的字段来进行创建相关的数据。然后将对象添加到refchain双向链表中。每个对象中有ob_refcnt就是计数器。默认值为1,当有其他变量引用对象时,引用计数器就会发生变化 a= 阅读全文
posted @ 2022-11-12 22:59 powfu 阅读(24) 评论(0) 推荐(0) 编辑
摘要:在python中,对象的赋值就是简单的引用,a = [1,2,3], b=a, 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是a的别名,是引用,我们可以使用b is a 去判断,返回True b = [1,2,3] a = b print(b is a) 浅拷贝:相当于复制一个杯子,更改 阅读全文
posted @ 2022-11-12 22:44 powfu 阅读(83) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示