![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 69
a35155
这个作者很懒,什么都没留下…
展开
-
django+drf 前后端分离总结(2)
DRF常见问题DRF 常用组件权限组件局部视图权限from rest_framework.permissions import BasePermissionclass SVIPPermission(BasePermission): message="SVIP才能访问!" def has_permission(self, request, view): if request.user.user_type==3: return True原创 2022-02-22 19:52:11 · 312 阅读 · 0 评论 -
django+drf 前后端分离总结(1)
django常见问题django设计模式django的内置组件认证组件auth模块models用户模型主要有下面几个字段:username、password、email、first_name、last_name一般我们继承AbstractUser去扩展#注意要在setting设置这个、重载系统的用户,让UserProfile生效AUTH_USER_MODEL = 'users.UserProfile'authenticate() 提供了用户认证,即验证用户名以及密码是否正确,一原创 2022-02-21 19:12:20 · 2347 阅读 · 0 评论 -
drf 分页
内置分页器分页基类class BasePagination: display_page_controls = False def paginate_queryset(self, queryset, request, view=None): # pragma: no cover raise NotImplementedError('paginate_queryset() must be implemented.') def get_paginated_resp原创 2022-02-17 18:45:18 · 594 阅读 · 0 评论 -
drf 序列化器
模型类对象-> > python字典: 序列化python字典-> > 模型类对象: 反序列化序列化对象创建对象from datetime import datetimeclass Comment(object): def __init__(self, email, content, created=None): self.email = email self.content = content self.cr原创 2022-02-16 19:14:08 · 544 阅读 · 1 评论 -
drf 解析器
过程执行get_parsersdef get_parsers(self): """ Instantiates and returns the list of parsers that this view can use. """ # 列表生成式获取解析器实例 return [parser() for parser in self.parser_classes]列表生成式获取解析器实例,然后就是看是否我们在类中是否定义了解析类设置了就执行设置的解析类原创 2022-02-15 19:50:16 · 551 阅读 · 1 评论 -
DRF 认证(1)
认证流程认证过程解析一、在django中客户端发来的请求会执行视图类的as_view方法,而as_view方法会执行dispatch方法,然后进行反射执行相应的方法(get、post等)反射:通过字符串的形式操作对象相关的属性https://www.chenshaowen.com/blog/reflection-of-python.html1. getattr(object,‘name‘,‘default’)如果存在name的属性方法,则返回name的属性方法,否则返回default的属性原创 2022-01-26 18:34:02 · 1065 阅读 · 0 评论 -
Django 源码 ORM 查询管理器
ORM 查询管理器对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。ORM 能大大简化并抽象数据库的操作.假设 django 的一个工程中包含一个名为 Book 的模块(model), 在 views.py 的函数中可能会写出查询语句:# views.pydef index(request): book_set =原创 2022-01-25 18:26:08 · 143 阅读 · 0 评论 -
Django 源码 响应数据 response
响应数据的返回在 WSGIHandler.call(self, environ, start_response) 方法调用了 WSGIHandler.get_response() 方法, 由此得到响应数据对象 response. 如今所要做的, 便是将其返回给客户端. 在 Django 源码小剖: 初探 WSGI 中, 简要的概括了请求到来时 django 自带服务器的执行关系, 摘抄如下:make_server() 中 WSGIServer 类已经作为服务器类, 负责接收请求, 调用 applica原创 2022-01-21 19:28:04 · 142 阅读 · 0 评论 -
Django源码 url调度
URL 调度器django url 匹配处理机制主要由一下模块实现: django.conf.urls 和 django.core.urlresolver.py.BaseHandler.get_response() 的定义处理请求的函数, 并返回 responsedef get_response(self, request):“Returns an HttpResponse object for the given HttpRequest”根据请求, 得到响应try: 为该线程提供默认原创 2022-01-20 17:00:47 · 164 阅读 · 0 评论 -
Django 源码: 中间件(middleware)
BaseHandler 详解BaseHandler 在 django.core.handlers.base.py 中定义, 有两个核心的成员方法不得不提, 里面就涉及了中间件的信息:# 好经典的 handlerclass BaseHandler(object): # Changes that are always applied to a response (in this order). response_fixes = [ http.fix_location_hea原创 2022-01-19 17:38:55 · 297 阅读 · 0 评论 -
Django 源码 应用程序入口 WSGIHandler
WSGI 有三个部分, 分别为服务器(server), 应用程序(application) 和中间件(middleware). 已经知道, 服务器方面会调用应用程序来处理请求, 在应用程序中有真正的处理逻辑, 在这里面几乎可以做任何事情, 其中的中间件就会在里面展开.Django 中的应用程序任何的 WSGI 应用程序, 都必须是一个 start_response(status, response_headers, exc_info=None) 形式的函数或者定义了 call 的类. 而 django原创 2022-01-18 18:10:12 · 182 阅读 · 0 评论 -
Django 源码 Django 中的 WSGI
Django 自带的服务器基于 python wsgiref 模块实现,Django 内置服务器在 django.core.servers 和 django.core.handlers, 这两者共同来实现.basehttp.py 重写 ServerHandler,WSGIServer,WSGIRequestHandler,定义 run() 函数class ServerHandler(simple_server.ServerHandler, object):...class WSGIServer(s原创 2022-01-18 18:06:50 · 364 阅读 · 0 评论 -
Django源码剖析 WSGI
在python web开发方面,客户端请求服务端,服务端作出响应,返回数据。服务端涉及两部分:服务器(server)和应用程序(application)。WSGI 是python在server和application之间约定的协议。application/应用程序def simple_app(environ, start_response): """可能是最简单的处理了""" status = '200 OK' response_headers = [('Content-type原创 2022-01-17 18:34:49 · 2104 阅读 · 0 评论 -
python 实现单例模式
解释:在一个类中,只有一个可存在的实例。应用场景:资源共享的情况下,避免由于资源操作试导致的性能或损耗等。比如日志文件,应用配置。 控制资源的情况下,方便资源之间的互相通信。如线程池。实现:使用类class A:... _instance = None... def __new__(cls, *args, **kwargs):... if ...原创 2020-03-17 15:52:38 · 135 阅读 · 0 评论 -
【玩转python】一 python装饰器
python有着强大的表达式语法和函数特性,其中一个我的最爱便是装饰器。在设计模式中,装饰器能够在不使用子类的情况下动态的修改函数、方法或类的功能。当你需要扩展某个函数的功能却不想直接修改这个函数的时候,装饰器就可以派上用场了。实现装饰器模式有很多种方法,但是python通过强大的语法支持来让这个变得相当容易。在这篇文章中我将深入讲解Python的函数装饰器,并通过一系列的源码示例来彻底讲...原创 2019-12-12 18:45:02 · 116 阅读 · 0 评论 -
【玩转python】一 python生成器
在讲生成器之前,先讲讲python里面常用的几个常见的推导式:列表推导式(list comprehension) 1 my_list = [f(x) for x in sequence if cond(x)] 字典推导式(dictionary comprehension) 1 my_dict = {...原创 2019-12-11 17:22:09 · 162 阅读 · 0 评论 -
【玩转python】一 python迭代器
迭代(iteration)指的是去获取元素的一种方式,一个接一个。当你显式或隐式的使用循环来遍历某个元素集的时候,那就是迭代。在Python里面,可迭代对象(iterable)和迭代器(iterator)有着特殊的含义。 iterable是实现了__iter__()方法的对象,该方法会返回一个iterator对象 iterator是实现了__iter__()和__next__(...原创 2019-12-09 17:54:25 · 120 阅读 · 0 评论 -
【玩转python】一 python字符串编码
字符编码unicode编码方式把所有语言统一成一套编码方式。一般使用两个字节表示一个字节,非常偏僻的就需要4个字节。目前大多数操作系统和编程语言都直接使用Unicode编码方式。为了节省空间,一种‘可变长编码’的方式诞生了,他就是utf-8。utf-8编码把一个Unicode字符编码成1-6个字节,常用的字母为一个字节,汉字通常为3个字节,生僻字才会编码成4-6个字节。如果要传输大量英文字...原创 2019-12-06 10:35:54 · 267 阅读 · 0 评论 -
【玩转python】一 python简介
人生苦短,我用Python!本系列将会从python基础一直延伸到python的各个方面。Python历史python的创始人叫Guido van Rossum。Python诞生于1989年,作者曾经是一个C++程序员,参加设计过ABC的教学语言,他觉得这个语言很优雅,使用简单, 天生就是为非专业程序员设计的。但是ABC语言由于过于封闭导致也没普及开来。Guido大师决定自己搞一个,参...原创 2019-12-05 18:09:12 · 281 阅读 · 0 评论 -
使用uwsgi 部署django 解决静态文件问题
问题Django本身不提供文件服务,它把这个任务留给你选择的Web服务器。这是Django帮助文档的原话:Django doesn’t serve files itself; it leaves that job to whichever Web server you choose.Django很贴心的提供了一个“静态文件收集”的功能,把所有的静态文件收集到一处,由Web服务器提供,通...原创 2019-08-08 13:44:03 · 667 阅读 · 0 评论 -
房天下爬虫
fang.py# -*- coding: utf-8 -*-import jsonimport reimport scrapyfrom myspider_fangtianxia.items import MyspiderFangtianxiaItemclass FangSpider(scrapy.Spider): name = 'fang' allowed_...原创 2018-08-21 15:02:21 · 1464 阅读 · 0 评论 -
python 装饰器
python 什么叫装饰器 用于调用另一个函数并返回结果总结: 1.类装饰器用于普通用法时, 用__call__ 2.类装饰器用于类用法时, 用__get__, 因为使用类装饰器后,在调用 func 函数的过程中其对应的 instance 并不会传递给 __call__ 方法,造成其 mehtod unbound ,那么解决方法是什么呢?描述符赛高使用类装饰器后,...转载 2018-08-08 14:28:48 · 111 阅读 · 0 评论