def

django 之 CSRF

孤街浪徒 提交于 2020-12-18 00:57:27
CSRF 即:(Cross-site request forgery)跨站请求伪造 , 是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。引入csrf_token的站点只有站点服务器自身可以解码 在settings.py中开启中间件: MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] 当开启该中间件时

在Python中创建单例

北战南征 提交于 2020-12-17 15:28:29
问题: This question is not for the discussion of whether or not the singleton design pattern is desirable, is an anti-pattern, or for any religious wars, but to discuss how this pattern is best implemented in Python in such a way that is most pythonic. 这个问题不是为了讨论是否需要 单例设计模式 ,是否是反模式,还是针对任何宗教战争,而是要讨论如何以最pythonic的方式在Python中最好地实现此模式。 In this instance I define 'most pythonic' to mean that it follows the 'principle of least astonishment' . 在这种情况下,我定义“最pythonic”来表示它遵循“最少惊讶的原理” 。 I have multiple classes which would become singletons (my use-case is for a logger, but this is not important). 我有多个将成为单例的类

一元二次、一元三次、一元四次方程的求根公式

久未见 提交于 2020-12-17 06:49:36
代码用python写的。 一元二次方程: def Quadratic(args): a,b,c = args D = cmath.sqrt(b**2-4*a* c) x1 = (-b+D)/(2* a) x2 = (-b-D)/(2* a) roots = [x1,x2] return roots 一元三次方程: def Cubic(args): a,b,c,d = args p = c/a-b**2/(3*a**2 ) q = d/a+2*b**3/(27*a**3)-b*c/(3*a**2 ) w = complex(-0.5,(3**0.5)/2 ) ww = complex(-0.5,-(3**0.5)/2 ) A = cmath.sqrt((q/2)**2+(p/3)**3 ) B = ThreeSquare(-q/2+ A) C = ThreeSquare(-q/2- A) y1 = B+ C y2 = w*B+ww* C y3 = ww*B+w* C D = b/(3* a) roots =[RoundAns(y1-D,6),RoundAns(y2-D,6),RoundAns(y3-D,6 )] return roots 一元四次方程: for k=0,1,2,计算m 如果三个m的值都为0,则 否则的话,取|m|最大的那个k,并计算 def Quartic(args)

Python常用功能函数

懵懂的女人 提交于 2020-12-17 06:31:22
Python常用功能函数汇总 1.按行写字符串到文件中 import sys, os, time, json def saveContext(filename,* name): format = ' ^ ' context = name[0] for i in name[1 :]: context = context + format + str(i) context = str(context).replace( ' ( ' , ' ( ' ).replace( ' ) ' , ' ) ' ).replace( ' , ' , ' , ' ).replace( ' : ' , ' : ' ) # 去除首位空格 filename = filename.strip() # 读取目录名称 path = os.path.dirname(filename) # 如果目录不存在则创建目录 if not os.path.exists(path): os.makedirs(path) # 读取文件名称 name = os.path.basename(filename) fp = open(filename, ' a ' ) fp.write(context + ' \n ' ) fp.close() 2.创建初始化浏览器 # coding:utf-8 import sys, os, time,

网易云音乐

僤鯓⒐⒋嵵緔 提交于 2020-12-17 06:06:08
import base64 import random from binascii import hexlify from Crypto.Cipher import AES import json import requests class GetMusic: def __init__(self): self.key = GetParamsAndEncSecKey() self.headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', 'Referer': 'http://music.163.com/'} self.session = requests.Session() self.session.headers = self.headers self.conmment_url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_{}?csrf_token=' # 评论 self.lyric_url = 'https://music.163.com/weapi/song/lyric?csrf_token

PythonI/O进阶学习笔记_3.1面向对象编程_python的多态和鸭子类型

隐身守侯 提交于 2020-12-17 04:58:19
前言: 与第一篇的面向对象内容不同的是,第一篇中的面向对象更多的是与类、对象结合起来的概念粗浅理解,就是在编程历史中诞生的一种思想方法。 这篇的面向对象编程,更多落实到在语言设计实现中,是如何体现面向对象这一设计思想的。 本篇内容围绕 python基础教程这段: 在面向对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法。使用对象而非全局变量和函数的原因有多个,下面列出了使用对象的最重要的好处。  多态:可对不同类型的对象执行相同的操作,而这些操作就像“被施了魔法”一样能够正常运行。  封装:对外部隐藏有关对象工作原理的细节。  继承:可基于通用类创建出专用类。 内容较多,这篇为上篇。 Content: - 类和对象的多态 - - 多态和鸭子类型 1.什么是多态? 2.什么是鸭子类型? 3.动态python的多态和其他动态语言的区别? 和静态语言多态的区别? 4.python语言中鸭子类型的应用? ( 下篇内容: - 类和对象的封装、继承 - - 抽象基类 - - 类属性,实例属性和其查找顺序 - - 静态方法、类方法、对象方法 - - 数据封装和私有属性 - - python的自省机制 - - python中的super函数 - - django中的继承 - - 上下文管理器 ) 一 类的多态和鸭子类型 1.什么是多态? 同一操作作用于不同的对象

AES_RSA _加密_调用

送分小仙女□ 提交于 2020-12-17 04:57:00
# AES RSA 加密 from Cryptodome.Cipher import AES from Cryptodome import Random import rsa from binascii import b2a_hex,a2b_hex #python 字符串与16进制互转 # class MyAES(): def __init__(self,key,mode=AES.MODE_CFB): ''' :param key: 是秘钥 :param mode: 默认 ''' self.key = self.check_key(key) self.mode = mode self.iv = Random.new().read(AES.block_size) def check_key(self,key): #检查key(秘钥)的类型 ''' 长度是限制 必须是bate类型 :return: ''' if isinstance(key,bytes): # 判断类型的方法:判断 key是不是bytes类型 assert len(key) in [16,24,32] #判断他的长度与是不是16 24 32其中之一, return key elif isinstance(key,str): assert len(key.encode()) in [16,24,32] return

zabbix监控多个nginx vhost网站状态码

ぃ、小莉子 提交于 2020-12-17 04:02:56
需求 假设一台服务器运行了N个vhost网站,如何确定在大流量并发时候找到是哪个网站的问题呢? 这似乎是每个运维都会遇到的问题,方法有很多比如:1、看nginx日志大小确定访问量。2、通过前端代理确定访问量。3、通过防火墙,waf等工具确定访问量。4、通过elk日志,splunk日志分析系统等等 这里讲一个nginx的模块利用方法:Nginx Vhost Traffic Status 添加nginx模块 添加nginx模块的方法有很多,比如  https://blog.csdn.net/zyw_java/article/details/80558320 注意生产环境不要覆盖make install 最后安装完大概是这个样子,我们要手动取得里面5xx错误条数,进行监控出图。我来做一块砖,给大家一个思路。其他的功能实现照葫芦画瓢就行。 获取他的JSON格式文件,用python解析并汇报到zabbix里 JSON路径为:http://域名或者ip/status/format/json 为了安全起见建议设置nginx的allow和deny 例如下面: location /status { vhost_traffic_status_display; vhost_traffic_status_display_format html; allow 192.168.80.0/28; allow

Python generator 类型

我只是一个虾纸丫 提交于 2020-12-16 20:15:10
场景: 使用gurobi求解优化问题时,遇到quicksum()函数用法如下: quicksum(mu[i] for i in range(n)) 读着很流畅而且好像并没什么问题欸,但 mu[i] for i in range(n) 返回的又是什么? 看了下quicksum()函数的介绍: def quicksum(p_list): # real signature unknown; restored from __doc__ """ ROUTINE: quicksum(list) PURPOSE: A quicker version of the Python built-in 'sum' function for building Gurobi expressions. ARGUMENTS: list: A list of terms. RETURN VALUE: An expression that represents the sum of the input arguments. EXAMPLE: expr = quicksum([x, y, z]) expr = quicksum([1.0, 2*y, 3*z*z]) """ pass 所以,上述代码返回的是个list? python console中试了下: x = [1,2,3 ] print (x[i] for i

python——拉勾网信息爬取

可紊 提交于 2020-12-16 18:50:08
原文: https://www.cnblogs.com/sui776265233/p/11146969.html python爬取拉勾网数据并进行数据可视化 阅读目录 一、爬取和分析相关依赖包 二、分析网页结构 三、数据清洗后入库 四、数据可视化展示 五、爬虫及可视化完整代码 爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示、直方图展示、词云展示等并根据可视化的数据做进一步的分析,其余分析和展示读者可自行发挥和扩展包括各种分析和不同的存储方式等。。。。。 回到顶部 一、爬取和分析相关依赖包 Python版本: Python3.6 requests: 下载网页 math: 向上取整 time: 暂停进程 pandas:数据分析并保存为csv文件 matplotlib:绘图 pyecharts:绘图 statsmodels:统计建模 wordcloud、scipy、jieba:生成中文词云 pylab:设置画图能显示中文 在以上安装或使用过程中可能读者会遇到安装或导入失败等问题自行百度,选择依赖包的合适版本 回到顶部 二、分析网页结构 通过Chrome搜索'python工程师',然后右键点击检查或者F12,,使用检查功能查看网页源代码,