分类标签归档:Python

[ @property配合@xx.setter ]


@*.setter

python中的@*.setter装饰器可以总结为两个作用:

对要存入的数据进行预处理
设置可读属性(不可修改)

注意:@.setter装饰器必须在@property装饰器的后面,且两个被修饰的函数的名称必须保持一致, 即为函数名称。

示例1

我们使用和上文一样的测试类,现在我们需要在数据存入user.age前先对其+5,利用@*.setter装饰器我们可以这样写:

class User():
    def __init__(self, name, age):
        self.name = name
        self._age = age

    

< Read more >

[ Python使用ElasticSearch官方包 ]


1. 安装

  • pip install elasticsearch
  • pip install elasticsearch==7.13.1
  • 官方

2. 基本使用

参考文档 - 百度文档1 - 百度文档2 - 百度文档3

# from django.shortcuts import render
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts=["http://localhost:9200"],
                   sniff_on_start=True, sniff_on_con

< Read more >

[ 支付宝-python支付 ]


对接支付宝基本使用

1.密钥生成文档

2.或者使用OpenSSL生成密钥

  • 在ubuntu终端执行openssl进入:
OpenSSL> genrsa -out app_private_key.pem   2048  #生成私钥
OpenSSL> pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem #Java开发者需要将私钥转换成PKCS8格式
OpenSSL> rsa -in app_private_key.pem -pu

< Read more >

[ Python魔法方法[属性]2 ]


1.getattr魔法方法 当读取这个属性不存在的时候, 你希望它做什么

class A:
    def __getattr__(self, name):
        print('getting')
        raise AttributeError

o = A()
print(o.test)

2.getattribute魔法方法 只要尝试读取属性都会被调用

class A:
    def __init__(self):
        self.data = 'abc'
        self.counter = 0

    def 

< Read more >

[ Python魔法方法[1] ]


1.获取new, init魔法方法 - 先使用__new__方法创建完成对象后, 再执行__init__方法

class A:
    def __new__(cls, x):
        print('__new__')
        return super().__new__(cls)

    def __init__(self, x):
        self.x = x
        print('__init__')
 o = A(1)

2.del魔法方法 - 在实例被释放的时候触发, 不可控 - 与python里的 del o是无关

< Read more >

[ DRF生成API文档drf-yasg ]


drf-yasg官方文档

如果你想为一个新项目添加Swagger/OpenAPI支持,你可能想看看drf-spectacular,这是一个积极维护的新库, 共享该项目的大部分目标,同时使用 OpenAPI 3.0 模式。

OpenAPI 3.0 在可以描述的 API 类型方面提供了比 2.0 更大的灵活性。 不太可能很快(如果有的话)获得对OpenAPI 3.0的支持。drf-yasg

一. 安装

pip install -U drf-yasg

此外,如果要使用内置验证机制(请参阅 4.验证),您需要安装 一些额外的要求:
pip install -U drf-yasg[validation

< Read more >