python学习
程序员托马斯
真香程序员
展开
-
kafka同步数据脚本示例
# -* coding:utf8 *-import sys, os, djangoos.environ["DJANGO_SETTINGS_MODULE"] = "IFS.settings"django.setup()import jsonfrom utils.ERP.erp_database import ERPDBsys.path.append('./')from kafka import KafkaConsumerfrom script.syn_procurement_data i.原创 2022-01-19 13:58:51 · 2271 阅读 · 0 评论 -
多层字典嵌套 取相应的数据
from django.test import TestCaseimport requestsglobal_dict = dict()def insert_data(data): """递归 把所有部门对应的id_hierarchy取出放入一个大字典中""" global_dict[data["id"]] = data["id_hierarchy"] sub_departments = data["sub_departments"] if sub_departm.原创 2022-01-17 09:11:19 · 420 阅读 · 0 评论 -
Python asyncio异步学习笔记
协程协程不是计算机提供的机制,是程序员人为定义的。协程被称为微线程,是一种用户态的上下文切换的技术。简而言之就是通过一个线程实现代码块相互切换运行。greenlet实现协程asyncio异步编程实战案例...原创 2021-12-12 18:19:00 · 1046 阅读 · 0 评论 -
常用数据处理函数
字符串部分1 len函数 计算字符串长度不区分数据类型 所有字符按一个字符计算a = "张asd32334d"print(len(a))# 计算字符串所占的字节数 utf-8下汉字占三个字节print(len(a.encode()))end:10,122 join函数将seq中每两个相邻元素中间插入字符串str。返回形成新的字符串。语法: 'str'.join(seq)参数说明str:分隔符。可以为空seq:要连接的元素序列:字符串、元组、字典上面的语法即...原创 2021-10-17 20:37:20 · 1933 阅读 · 0 评论 -
Tornado框架 视图类加装饰器 进行反爬 重复访问攻击验证
类装饰器主要思想业务和公共功能解耦注意步骤:1 定义new方法 引入要装饰的类的类对象以及类函数,然后返回inner函数在inner函数中处理验证和调用被装饰类的函数功能。2 定义检测静态方法3 在inner静态方法中检测,如果监测没问题则返回被装饰类的类方法,否则调用检测的静态方法import tornado.ioloopimport tornado.webuser_agents = [ "Mozilla/5.0 (Linux; Android 6.0; Nexu.原创 2021-10-05 21:25:35 · 190 阅读 · 0 评论 -
并发,并行和高并发
并发和并行的区别并发是指在一个时间段内有多个进程在执行,只不过在人的角度看,因为这个计算机角度的时间实在是太短暂了,人根本就感受不到是多个进程,看起来像是同时进行,这种是并发,而并行指的是在同一时刻有多个进程在同时执行。一个是时间段内发生的,一个是某一时刻发生的,如果是在只有一个CPU的情况下,是无法实现并行的,因为同一时刻只能有一个进程被调度执行,如果此时同时要执行其他进程则必须上下文切换,这种只能称之为并发,而如果是多个CPU的情况下,就可以同时调度多个进程,这种就可以称之为并行。从这里我们可以原创 2021-09-25 14:53:19 · 816 阅读 · 0 评论 -
线程锁的使用 (with语句加普通锁写法)
with语句Python Threading中的Lock模块有acquire()和release()两种方法,这两种方法与with语句的搭配相当于,进入with语句块时候会先执行acquire()方法,语句块结束后会执行release方法。import threadingimport timelock = threading.Lock()class Singleton(): def __init__(self): time.sleep(1) @clas原创 2021-09-23 09:07:23 · 1237 阅读 · 0 评论 -
python基础的查漏补缺(重难点)笔记
字典的增删改查增d={}d["key"]=180删d = {"name":"zhangsan","age":12}# 删除指定键值对del d["age"]# 删除指定键值对 并把删除的值 赋给变量age=d.pop("age")print("age")# 结果:12print(d)# 结果 d ={"name":"zhansan"}popitem()方法的使用删除最右边的键值对,并以元组的形式返回该键值对字典如为空 则报错d = {"name": "zhangsan"原创 2021-09-14 20:24:00 · 2082 阅读 · 1 评论 -
类中定义装饰器 装饰类中的实例方法
# def decorate(func):# def inner(self,value):# func(self,value)# print(self.v)## return innerclass Computer(): def __init__(self, value): self.v = value def decorate(func, ): def inner(self, value):.原创 2021-09-10 10:25:04 · 160 阅读 · 0 评论 -
python 字典与json的区别 以及json数据的传输与解析
python 字典与json的区别一. python的字典和json字符串的区别python中,json和dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads互转,但是它们之间还是有区别的:json:是一种数据格式,是纯字符串。可以被解析成python的dict或其他形式。dict:是 一个完整的数据结构,是对hash table这一数据结构的实现,是一套从存储到提取都封装好的方案。它使用内置的hash函数来规划key对应的value的存储原创 2021-07-27 11:27:08 · 389 阅读 · 0 评论 -
python卸载没卸载干净导致再次安装失败
找到python安装的exe文件点击repair先修复一下 然后再uninstall就可以了原创 2021-07-07 10:35:17 · 5242 阅读 · 5 评论 -
python 调用百度地图api 实现批量经纬度转换为实际省市地点(api调用,json解析,mysql读取与写入)
1.获取秘钥调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥。链接如下:添加链接描述下面是百度创建的app设置:2.调用API将经纬度信息解析成json信息def get_loca(lat, long): url = 'http://api.map.baidu.com/reverse_geocoding/v3/?ak=‘你的key’=json&coordtype=wgs84ll&location='+str(long)+','+str(lat)原创 2021-04-25 16:14:39 · 1100 阅读 · 0 评论 -
网站优化思路笔记
缓存层自建web缓存,或者购买CDN,将用户经常访问的,更新频率低的资源存放起来,这样用户再次请求相同资源的时候,就不会对后端的服务造成影响。为防止互联网上的恶意访问爬虫,我们应该做好相应的安全措施。缓存之类的措施一定要适合公司的当前业务,如果是项目的静态资源很多,只要我们购买的cdn够好,用户访问量可随便。搭建服务器集群,用户访问就近的地区服务器。用户请求由不同的多台服务器承担,减轻服务器访问压力,在用户使用量低的时间段,子服务器顺序把数据上传到总服务器上,总服务器整合完,把数据分发到子服务器上。原创 2021-03-12 16:36:28 · 75 阅读 · 2 评论 -
makemigrations以后migrate不建立表
由于建表 有冲突报错操作 先python mange.py makemigrations再 python mange.py migrate --fake再 python mana.py makemigrations再 python manage.py migrate成功原创 2021-03-02 11:45:23 · 142 阅读 · 0 评论 -
IndexError: list index out of range 算列表中的数据和
def returnmonth(): month = [1, 2, 3, 4, 5,6, 7,8, 9, 10, 11, 12] time = datetime.now().month count = 0 a=0 for i in month: # i从1开始计数 所以i要减一 a += month[i-1] return a一开始a+=month[i]报错 list index out of range列表超出界限原创 2021-03-02 08:38:31 · 135 阅读 · 0 评论 -
pychrm git代码管理使用笔记
添加git账户setting – version contronl – github点击右上角加号 我的pycharm不能使用账号密码登录 只能使用token寻找token1 登录git全选获得token把token填入登陆成功建立仓库建立本地仓库建立远程仓库...原创 2021-02-26 14:43:11 · 486 阅读 · 0 评论 -
scheduler定时器学习使用笔记
scheduler是轻量级的定时器框架,使用较方便废话不多说 直接上代码executors = { 'default': ThreadPoolExecutor(20) # 线程池最大线程数 一个线程可支持多个任务}def func(): now = datetime.now() now = now.strftime('%Y-%m-%d') start_time = now + " " + '00:00:01' end_time = now + " " +原创 2021-02-24 10:12:22 · 1944 阅读 · 0 评论 -
解决 TypeError: ‘Fittings‘ object is not iterable
获取数据要使用filter 不要用get原创 2021-01-26 10:47:38 · 173 阅读 · 0 评论 -
解决报错TypeError: Field ‘id‘ expected a number but got <BoundField value=10 errors=None>.
原创 2021-01-26 10:05:33 · 11082 阅读 · 0 评论 -
django mysql数据导出excel表功能的实现 根据日期导出 以及直接在浏览器端实现下载
根据时间来导出excel表的数据如果传入日期 就导出日期的表的数据,如果不传入,则导出全部def date_select_input(request): starttime = request.GET.get('start_time') # 日期 endtime = request.GET.get('end_time') if not starttime: list_obj = Input.objects.all() else: star原创 2021-01-07 10:27:07 · 423 阅读 · 1 评论 -
django 巧妙实现token验证
首先就是要产生token产生随机token的代码这个可以自己修改产生随机验证码的方式# 身份验证 token产生def generate_token(name): c_time = str(time.time()) r = str(random.random()) return hashlib.new("md5", (c_time + r + name).encode("utf-8")).hexdigest()在网上查看了token方法是用户登录后 后端直接生成toke原创 2021-01-07 09:51:31 · 1872 阅读 · 0 评论 -
worldcloud库的使用 极其分析文本生成词云的案例
worldcloud库的基本使用worldcloud库把词云当成一个wordcloud对象wordcloud.WordCloud()代表一个文本对应的词云可以根据文本中词语出现的频率等参数绘制词云绘制词云的形状,尺寸颜色都可以设定worldcloud库的常规方法w=world.WordCloud()以WordCloud对象为基础 配置参数 加载文本 输出文件方法1 w.generate(txt) 向WordCloud对象w中加载文本txt,>>>w.generate("原创 2020-08-24 17:32:58 · 6280 阅读 · 0 评论 -
python中创建多个变量
python作为一种弱类型语音 在创建多个变量时与其他语言稍有不同ex:a,b=1,2print(a,b)输出1 2这种创建变量方式本质上是对元组(1,2)进行解包a,b=(1,2)print(a)print(b)输出12正规的定义方式是a=1;b=2这种定义方式也是唯一用到;的python语句...原创 2020-08-23 14:15:13 · 1535 阅读 · 0 评论 -
python中的可变类型与不可变类型
python中的可变类型与不可变类型区别较大,另int类型较其他不可变类型还有细微不同总的来说 python中可变类型有列表,字典,集合 不可变类型有字符串 数字 元组对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(新开辟了一块内存地址),如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收。不可变类型以int型为例 实际上 i+=1并不是在原有的int对象上加1,而是重新创建一个value为6的对象,i这个引用指向这个新对象原创 2020-08-19 08:55:31 · 367 阅读 · 0 评论 -
网络调试助手 TCPsever无法连接
今天想写一个tcp客户端程序在虚拟机运行 本机电脑端作为服务器端 在csdn上下载了一个网络连接助手 可以连接udp和TCP client,就是无法连接TCPsever。尝试的方法 1 关闭防火墙 无效2 更换网络连接助手无效发现原因:端口号可能被占用win+R打开cmd输入8080果然被占用试试8081被占用了吗没被占用 太好了更换端口号为8081重新连接 成功...原创 2020-08-14 16:10:20 · 6663 阅读 · 3 评论 -
pip命令更新失败
更换镜像源更换镜像源时要写全 后面的–trusted -host pypi.douban.com 要加上成功!打篮球去了!原创 2020-08-12 17:56:49 · 342 阅读 · 0 评论 -
pymysql在linux系统下的安装 失败
出现了unsupported operand type(s)for -=:Retry and int 错误看csdn前辈们好像没有出现过这种错误 然后随便找了个办法 成功了错误原因应该是镜像源下载速度慢 ,网速不行导致 本人用的是阿里镜像源解决办法 :更改镜像源结果成功安装...原创 2020-08-12 17:11:34 · 384 阅读 · 0 评论 -
python的各种推导式(列表 ,字典 ,集合)
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,列表(list)推导式字典(dict)推导式集合(set)推导式一、列表推导式1、使用[]生成list基本格式variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,可以是有返回值的函数。 for out_ex转载 2020-08-04 09:37:49 · 162 阅读 · 0 评论 -
关于__del__方法的使用
当对象被删除时,__del 会自动被调用但是del 只是删除的对象的引用 ,也就是说不是del 对象后,__del__方法会被自动调用,而是对象引用个数被删至0时,对象才被删除,这时_del__方法才被调用。对象的内存才会被回收。...原创 2020-08-03 07:50:54 · 1066 阅读 · 0 评论 -
python学习 第八章习题
8-6 城市名:编写一个名为 city_country() 的函数,它接受城市的名称及其所属的国家。这个函数应返回一个格式类似于下面这样的字符串:“Santiago, Chile”至少使用三个城市国家对调用这个函数,并打印它返回的值8-7 专辑:编写一个名为 make_album() 的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。给函数原创 2020-07-24 22:01:24 · 1121 阅读 · 0 评论 -
python学习从入门到实践 第七章练习题
7-8 熟食店:创建一个名为 sandwich_orders 的列表,在其中包含各种三明治的名字;再创建一个名为 finished_sandwiches 的空列表。遍历列表 sandwich_orders ,对于其中的每种三明治,都打印一条消息,如 I made your tuna sandwich ,并将其移到列表finished_sandwiches 。所有三明治都制作好后,打印一条消息,将这些三明治列出来。7-9 五香烟熏牛肉(pastrami )卖完了:使用为完成练习 7-8 而创建的原创 2020-07-24 15:06:28 · 369 阅读 · 0 评论 -
python习题第六章最后一个 字典中嵌套字典的数据访问方式
6-11 城市:创建一个名为 cities 的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。在表示每座城市的字典中,应包含 country 、 population 和 fact 等键。将每座城市的名字以及有关它们的信息都打印出来。字典中嵌套字典的数据访问方式...原创 2020-07-23 15:36:15 · 1469 阅读 · 0 评论 -
python学习 从实践到入门第六章习题
6-9 喜欢的地方:创建一个名为 favorite_places 的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的 1~3个地方。为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来items函数,将一个字典以列表的形式返回,因为字典是无序的,所以返回的列表也是无序的。...原创 2020-07-23 14:56:28 · 198 阅读 · 0 评论 -
python 学习5-11习题
5-11 序数:序数表示位置,如 1st和 2nd。大多数序数都以 th结尾,只有 1、2和 3例外。 在一个列表中存储数字 1~9。 遍历这个列表。 在循环中使用一个 if-elif-else 结构,以打印每个数字对应的序数。输出内容应为 1st 、 2nd 、 3rd 、 4th 、 5th 、 6th 、 7th 、 8th 和 9th , 但每个序数都独占一行。...原创 2020-07-23 08:08:24 · 444 阅读 · 0 评论 -
python学习 从入门到实践 5-10习题
5-10 检查用户名:按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。 创建一个至少包含 5个用户名的列表,并将其命名为 current_users 。 再创建一个包含 5个用户名的列表,将其命名为 new_users ,并确保其中有一两个用户名也包含在列表 current_users 中。 遍历列表 new_users ,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用确原创 2020-07-23 07:49:34 · 1054 阅读 · 0 评论