
python进阶技能
以python初级为基础,收录中级知识和相关技能。
魔幻云
从事十多年(运维开发,产品设计加持开发,DevOps工程师)
展开
-
Django CORS指南
CORS是一种允许不同域主机资源通信的机制。例如,使用Ajax请求是一种常用的方式。为了更好的阐述CORS如何工作,让我们假设一套web应用并绑定域名为domain.com,但是,为了节约用户信息,应用调用托管在另一个URL中的API上,例如:api.domain.com。当一个请求保存数据到api.domain.com上时,这时候服务会验证请求的头信息和请求资源。如果允许这个URL domain.com访问,它将返回正确的响应。如果这个域不允许,这个服务会返回错误。原创 2022-11-26 22:09:00 · 1300 阅读 · 0 评论 -
数据库访问的ORM对象关系映射是啥?
面向对象编程和关系型数据库,都是目前最流行的技术,但是它们的模型是不一样的。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。原创 2022-11-23 12:58:15 · 263 阅读 · 0 评论 -
Django 单元测试TestCase
使用的包pip install coverage编写测试用例引用TestCase基类:django.test继承了python标准库unittest,所以自己的测试用例类继承django.test.TestCase即可:from django.test import TestCaseclass MyClassTestCase(TestCase): def SetUp(self): # 环境构造 pass def test_my_func(s原创 2021-05-30 09:03:45 · 1241 阅读 · 1 评论 -
python里面的多进程和线程
python中的多进程与线程比较:你所要知道的!如果你不想了解下面的解释说明,那么你就会处于一直等待状态。如果你的程序和网络绑定,你就可以使用多线程。如果你的程序是和CPU绑定,那你就可以使用多进程。我们创建这篇指南文章,是因为我们将更好的看到线程与多进程的区别,我们发现这些信息并不是很难以理解。他们陷入越深,就没有真正触及到这些信息,这将有助于我们决定使用什么和如何实现它。什么是线程,你为什么要怎么做?其本质而言,python是一门线性语言,当你想要多一点处理能力时,线程模块就派上用场啦翻译 2021-05-27 14:13:21 · 132 阅读 · 0 评论 -
(进)Python 中is和==的区别
问题is 和 == 是同一个概念吗?它们有什么本质性的区别?解答在Python中一切都是对象。Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。==比较的是两个对象的内容是否相等,默认会调用对象的原创 2021-05-24 23:57:46 · 186 阅读 · 0 评论 -
(进)python 计算一个列表里面的元素出现次数
需求随着人工智能,机器学习等普及,有Pillow图像识别。但当在平时写代码中遇见对一个列表中的元素重复出现的次数统计时,或者一段英文对话,需要你计算出本段文章内各个单词出现的次数时,当然可以采用以上高级的机器学习分词。但往往是一个简单的需求,却需要兴师动众的搬出大军进行搏杀。接下来我将采用简单的几行代码进行统计。解决方案1.首先采用遍历列表,取出元素进行判断是否在列表中,然后再记录改元素为key,次数加1为value的字典中。2.首次出现直接key:1,重复出现则取出key对应的value进行原创 2021-05-24 14:34:03 · 892 阅读 · 0 评论 -
(进)动画描述Python递归过程
Python 递归递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。动画演示 Python递归动画原创 2021-05-11 15:33:29 · 235 阅读 · 0 评论 -
(进)Python MRO解析顺序(Method Resolution Order)
Python MRO 简述Python MRO (Method Resolution Order)当我们在涉及python多重继承的类中搜索属性时,将遵循顺序。首先,在当前类中进行搜索。如果找不到,搜索将移至父类。这是从左到右,深度优先。代码验证顺序:第一,解释器扫描M,然后扫描B,因为A-B是继承参数的顺序,再扫描X和Y后,最后扫描Z。顺序是X,Y,Z。按照深度优先扫描,X是来源于A,所以排在第一,最后,扫描类对象。>>> class A:原创 2021-05-11 14:36:51 · 299 阅读 · 0 评论 -
(进)函数super用法
需求当在Python中写类操作时,普通的类操作并不会用到的,当类之间继承操作时,第一个父类__init__里面定义的变量在子类继承时无法获取指定的变量,从而导致错误,下面是一堆官方解释,有耐心的话继续阅读。在我看来,相比于直接对超类调用未关联方法,使用函数super更直观,但这并非其唯一的优点。实际上,函数super很聪明,因此即便有多个超类,也只需调用函数super一次(条件是所有超类的构造函数也使用函数super)。另外,对于使用旧式类时处理起来很棘手的问题(如两个超类从同一个类派生而来),原创 2021-05-08 23:46:50 · 121 阅读 · 0 评论 -
(进)找出字典中最大值value及其key
需求前天写脚本时突然要对一个字典中的value值进行最大值筛选,然后将key关键字输出,我很自然就想起来列表max(list())就可以拿到了,哈哈,然后我很自然使用max(dict()),同时也出来结果。似乎大功告成,然后仔细一看发现max()是对字典是key进行取值的。In [1]: a = {'a':13, 'c': 12, 'z': 4, 'f':10} # 定义In [2]:In [2]: aOut[2]: {'a': 13, 'c': 12, 'f': 10, 'z': 4}原创 2021-05-08 23:28:13 · 1325 阅读 · 0 评论 -
Python调用sonar API操作实战
需求当Django项目遇见了调用第三方接口时,有很多方式对接,今天介绍持续集成系统与sonarqube系统对接操作实战,小试牛刀,先杀只鸡,慢慢的后面杀牛。方案接口模块开头# -*- coding: utf-8 -*-import requests # http请求模块from django.conf import settings # 导入settings模块里面的配置信息from urllib.parse import urljoin # url解析模块import logging原创 2021-05-08 21:08:46 · 1805 阅读 · 2 评论 -
(进)Python中的*args 和 **kwargs使用
简述我先来告诉你一个事实, 其实并不是必须写成args 和kwargs。 只有变量前⾯的 (星号)才是必须的。你也可以写成var 和vars, ⽽写成args 和**kwargs只是⼀个通俗的命名约定。 接下来我么一起聊聊。*args解释*args 是⽤来发送一个非键值对的可变数量的参数列表给一个函数def test_var_args(f_arg,*args): #接受元组数据... print("first normal arg:",f_arg)... print("a原创 2021-05-08 16:19:48 · 124 阅读 · 0 评论 -
python处理两个json根据序号进行一对一组合
需求对两个列表(json数据个数相同)进行按照列表元素序号进行获取对应的元素进行拼接。然后进行数据库ORM多条件查询操作。其中需要查询表1中的ID,提供给表2中进行使用。如:l1=['联通3楼', '联通3楼', '联通3楼'],l2=['G04', 'G02', 'G01']结果l1.0=联通3楼l2.0=G04l1.1=联通3楼l2.1=原创 2018-01-09 15:53:35 · 1923 阅读 · 0 评论