自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 Docker搭建django调试服务器

注意: “groupadd -g 1000 web && useradd -u 1000 -g web weber”, 其中的"-g 1000"和"-u 1000"分別代表用户组和用户, 对应docker主机的用户(可使用linux命令id查看)

2023-05-09 17:12:14 511

原创 (2022) netmiko - 2.批量登录交换机(加强版)

實現同時登入多台設備,提升效率!

2022-06-02 10:05:25 542 1

原创 Django模型1對多的查詢用法

# models.py# 基金庫:基金代碼,基金名稱class Fund(models.Model): code = models.CharField(max_length=20, unique=True, primary_key=True) name = models.CharField(max_length=250, blank=True, default='')# 基金净值庫:基金代碼,净值日期,净值,增長率,備注class FundData(models.Model):

2022-05-30 18:27:22 155

原创 (2022) netmiko - 1.批量登录交换机

前言:Environment:python = 3.9.0netmiko = 4.1.0 (pip install netmiko)pyyaml = 6.0 (pip install pyyaml)文件内容为方便以后管理,使用YAML文件作为设备库(也可以使用json,但YAML更直观:)。inventory.yml 如下:# inventory.ymlSW01: device_type: cisco_ios host: 10.0.0.1 username: user1

2022-05-29 17:21:43 573

原创 好用的线程池ThreadPoolExecutor

from concurrent.futures import ThreadPoolExecutor, as_completedimport timedef myfunc(ip): print(f"{ip} start.") time.sleep(1) print(f"{ip} done.") return f"{ip} done."if __name__ == '__main__': ip_list = [ f"10.99.8.{host}"

2021-09-11 18:09:48 138

原创 多网络设备通过IP地址多线程连接框架

import queueimport threadingfrom time import sleepimport randomdef get_log(ip_q: queue.Queue): while not ip_q.empty(): ip = ip_q.get() print(f'Start to get log of {ip}') sleep(random.randint(1,3)) # 对设备进行操作 print(f

2021-09-11 12:22:26 132

原创 debian10搭建django+uwsgi+nginx网站(下)

上一回,我们已经把nginx+uwsgi+django搭建起来了。这一次,我们先把主机重启一下,然后用浏览器打开 http://主机IP地址,502错误重现了!看来是因为uwsgi没有开机自启动,那我们来让他启动吧:因为在上一节中,只在虚拟环境中安装uwsgi,首先进入虚拟环境muchun@web:~$ source ~/venv/bin/activate(venv) muchun@web:~$通过ini配置文件启动uwsgi(venv) muchun@web:~$ cd uwsgi(v

2021-08-06 17:12:15 279 2

原创 debian10搭建django+uwsgi+nginx网站(上)

Part A - Django安装虚拟环境模块muchun@web:~$ sudo apt install -y python3-venv在当前用户目录下创建虚拟环境venvmuchun@web:~$ python3 -m venv ~/venv进入虚拟环境muchun@web:~$ source ~/venv/bin/activate(venv) muchun@web:~$安装django,指定版本为3.2(venv) muchun@web:~$ pip insta

2021-08-06 13:59:09 329

原创 logging的用法(Python)

使用logging來記錄日志import logginglog1 = logging.getLogger('MAN01')log1.setLevel(logging.DEBUG)fmt1 = logging.Formatter( '%(asctime)s [%(levelname)-8s] (%(name)s): %(msg)s', # 輸出格式 datefmt='%Y/%m/%d %H:%M:%S' # 日期格式)# 定義文件輸出fh_a = logging.File

2021-05-14 15:59:23 98

转载 AJAX提交使用crsf認證

$('#d1').click(function (){ $.ajax({ url:'', type:'post', //第一種:利用標簽查找獲取頁面上的隨機字符串 data:{"username":'xiaoming', "csrfmiddlewaretoken":$("[name='csrfmiddlewaretoken']").val()}, //第二種: 利用模板語法提供的快捷書寫 data:{"username":'xiaoming', 'csrfmiddlewaretok

2021-04-27 18:37:25 81

原创 django之session的介紹

Session的使用session數據保存在數據庫中,表名是django_session,使用以下命令會自動創建python manage.py migrate注意事項默認過期時間是14天同一台PC同一個瀏覽器只會有一條數據生效(session過期會出現多條數據對應一個瀏覽器,過段時間會自動清理,也可以手動清理)過程創建 request.session[‘username’] = ‘xiaoming’自動生成一個隨機字符串自動將隨機字符串和對應數據存儲到django_session

2021-04-22 16:20:05 101

原创 django 之 使用cookie

django - cookie操作def login(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') print(username, password) if username == 'superman' and password == '123'

2021-04-22 15:30:07 111 2

原创 Python多线程——信号量

import threadingimport timeimport randomdef run(n): semaphore.acquire() sleep_time = random.randint(1,30) print("run the thread:%s, sleep: %ss" % (n, sleep_time)) time.sleep(sleep_time) semaphore.release()if __name__ == .

2021-04-08 21:46:02 84

原创 Python之socket初探

效果:server和client建立对话,client发送字符串,server接收后返回大写字符串。server端代码如下:import socketserver = socket.socket()server.bind(('localhost', 6969)) #绑定监听端口server.listen()print("Start to listening...")conn,addr = server.accept() #等待连接print(conn, addr)data

2021-03-08 11:36:03 110 1

原创 python最简单的字符串转字典(str 2 dict)

代码如下:a = '''{'name': 'xiaoming', 'score':{'chinese': 95,'english': 93,'math': 98} }'''b = eval(a)print(type(a), a)print(type(b), b)运行如下:<class 'str'> {'name': 'xiaoming', 'score':{'chinese': 95,'english': 93,'math': 98} }<class 'dict'&

2021-03-04 17:37:04 545 1

原创 网络管理自动化 - Ansible 入门(2)

基础配置请参考前文,点击跳转:网络管理自动化 - Ansible 入门(1)基础配置后,开始来写playbook,目的让设备按剧本来配置。目录下新建一个playbook_1.yml,内容如下:---- name: General Config hosts: AS #运行对象为Access Switch gather_facts: no #禁止搜集信息 tasks: - name: Add Banner #添加登录提示 ios_banner: b

2021-03-02 17:14:19 305

原创 网络管理自动化 - nornir 3.0 入门(1)

1. 基础配置目录结构如下:.|-- config.yaml #配置文件,定义设备库的路径,线程等|-- inventory| |-- defaults.yaml #所有设备默认配置| |-- groups.yaml #组内设备共有配置| `-- hosts.yaml #单个设备配置|-- main.py #运行文件config.yaml 内容如下:---inventory: plugin: SimpleInventory ...

2021-03-01 19:34:15 1229

原创 网络管理自动化 - Ansible 入门(1)

场景:某公司内部有1台路由器,1台核心交换机,2台接入交换机,希望通过ansible来进行管理。做法:linux主机下创建ansible文件夹,文件夹内创建ansible.cfg(名字不能改)和hosts(名字可改),ansible.cfg 内容如下:[defaults]host_key_checking = False #跳过SSH key的检查inventory = ./hosts #使用自定义的设备目录timeout = 5 #连接超时hosts 内容如下:[R]

2021-03-01 17:47:01 886

原创 Django两种创建数据比较:Normal & CreatView

Django两种创建数据的比较: Normal CreatView models.py fromdjango.dbimportmodels classCustomer(models.Model): ...

2021-01-27 23:10:23 123

原创 华为smart-link需要注意的一个问题

Smart Link,又叫做灵活链路或备份链路。一个Smart Link由两个端口组成,其中一个端口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。实际场景:有两台交换机:(上游)思科C3750,(下游)华为S5720,通过两条链路连接TRUNK,其中一条是链路备份。上游思科运行PVST,下游华为运行smart link,因某些原因,暂不考虑VBST和LACP。发现问题:运行正常时,其中一条链路状态为Active,另一条状态为Inactive,通过在上游的

2021-01-23 13:43:05 1246 1

原创 python装饰器

python装饰器的运用,先写一个函数(CalculaTime),里面再生成一个函数(wrapper)名字可随意,*args和**kwargs把参数给传进去,func即你要包裹的函数,在不修改原有函数的情况下,添加一下功能(例如写log等),然后再返回这个生成的函数(wrapper)。@语法糖,添加在原有函数的头部,意义为用@后面的函数(calculateTime)来包裹下面的函数(sayHello,sayMyname),等价于以下两行:f1 = calculateTime(sayHello)f

2021-01-23 13:08:54 58

原创 華爲路由過濾

場景:R1和R2通過G0/0/0連接,並啓用ISIS協議,R2上有3個LoopBack,如圖所示。要求:R2上,直連接口引入ISIS,LoopBack 0不引入 R2上,直連引入的LoopBack 1不對外發佈 R1上,通過ISIS學習的LoopBack 2不引入基礎配置:[R1]#isis 1 is-level level-2 network-entity 01.0000.0000.0001.00#interface GigabitEthernet0/0/0 ip a

2020-11-25 13:29:55 109

原创 多设备和服务器通过python实现批量自动化下载

需求:有80台设备,2台服务器,每台服务器只允许同时5个连接。import queueimport threading, timedef rest(q_c, q_s): while not q_c.empty(): #检测客户端的序列是否已经为空 q_client = q_c.get() #提取客户端 q_server = q_s.get() #提取可用的服务器 print('%s start to download from %s.

2020-11-24 15:14:52 146

原创 python字典筛选

统计高于平均分的同学student = { '01':{'name':'xiaoming', 'score':93}, '02':{'name':'xiaohong', 'score':96}, '03':{'name':'liming', 'score':78}, '04':{'name':'zhangsan', 'score':88},}total = 0for stu in student.values(): total += stu['scor

2020-11-23 21:22:48 1375

原创 批量更改华为交换机配置 by Python

模拟场景和需求:有100台华为的S5700交换机已经在正常运作,通过SSH连接,用户名和密码一致。由于业务需要,统一更改部分接口的配置。目录结构:set_commands.py # 执行文件cmds.txt # 需要更改的配置命令文件内容:set_commands.py:from netmiko import ConnectHandlerfrom netmiko.ssh_exception import NetMikoAuthenticationException...

2020-11-19 14:50:34 1654 1

原创 交换机生成树协议(STP)对接:思科3650-PVST to 华为S5700-VBST

场景:Cisco 3650 连接汇聚层,Huawei S5700连接Cisco 3650,Cisco运行是PVST,Huawei采用VBST对接。配置部分:Cisco 3650(uplink: 汇聚层)!spanning-tree mode rapid-pvstspanning-tree portfast defaultspanning-tree portfast bpduguard defaultspanning-tree extend system-idspanning-tree

2020-11-16 15:15:32 3246 2

原创 python常用格式化字符串方法

coding中经常会使用到格式化字符串,总结一下各种方法:(python version >3.5)first_name = "Ben"last_name = "Becker"full_name1 = f"{first_name} {last_name}" #f代表format的简写>>> 'Ben Becker'full_name2 = "{fname} {lname}".format(fname=first_name, lname=last_name)&gt.

2020-11-12 11:17:23 116

原创 華爲S5700交換機自動化升級固件

#!/usr/bin/python3# -*- coding: utf-8 -*-from netmiko import ConnectHandlerfrom netmiko.ssh_exception import NetMikoAuthenticationException, NetMikoTimeoutExceptionimport threadingimport timeimport datetimeimport queuedef conn_info(ip)...

2020-08-10 22:26:52 1093

原创 python利用queue对多线程做并发数量控制

原理是:开启20个thread,每一个thread会从queue中取走一个参数然后做相应的操作,运作一遍后,检查queue中还有没有参数,有的话继续操作,没有的话就退出thread。简单点就是:queue里面坐满了顾客,我同时开了20个柜台(threading)来处理顾客需求,1个柜台处理完一个顾客后,假如还有顾客在等待就继续处理,没有的话就关闭柜台,直到全部的顾客都处理完毕。import queueimport threading, timedef rest(que): while

2020-08-01 23:01:52 1587

原创 netmiko自动获取extreme交换机信息

目的:通过netmiko实现多线程连接extreme switch,获取model,sn,version等信息。说明:目录下建立一个devices.txt文件,每行一个设备信息,格式:ipaddress username password(中间用1个空格分隔)代码如下:import re, threadingfrom netmiko import ConnectHandlers...

2019-06-19 12:07:19 821

原创 Python GUI(Tkinter)初探

Python version: 3.7.0效果:代码:import tkinter as tkdef openPath(): print("aaa")frm = tk.Tk()frm.title('Auto Rename File Tool V1.0')frm.geometry("380x80")label1 = tk.Label(frm,text='Fi...

2019-06-14 18:35:47 124

原创 Python批量修改文件名(删除指定关键字)

因下载的视频文件大多数含有视频网站的url或者包含其他不要的字符串,用python自动修改。目前缺点:1,需要把.py放在目录内运行代码如下:import os, rewhile True: keyword = input("请输入你要删除的字符串:") if len(keyword)==0 or keyword.isspace(): ...

2019-06-14 18:15:56 2353 2

原创 JSP中include文件出现乱码解决

在每一页加上下面:解决动态页面编码问题解决静态页面编码问题 静态include是指,该语句↑的「file」属性不能带变量或参数传递。例:" %>  都是不对的。-------------------------------------------------------------动态对此page属性还可动态赋值。例:  " />----------------------

2006-07-05 15:47:00 2578

原创 JDBC连接语句

MYSQLConnection con = DriverManager.getConnection("jdbc:mysql://数据库所在IP地址:3306/数据库名称",ID,Pwd);SQL ServerConnection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://数据库所在IP地址:1433:databa

2006-06-02 20:44:00 1429

转载 千千万万的IT开发工程师路在何方?

转自:天涯虚拟社区 作者:LOVELUCK        本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师。当你选择计算机或者电子、自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷不悟,仍然选择了开发作为你的职业,真是自作孽不可活。不过,欢迎你和我一样加入这个被其它人认为是风光无限的“白领”吧。如果你不是特别地与人世隔绝,我想你一定看过金老先生的名著《

2006-04-13 17:34:00 669

转载 数码相片转传统相片尺寸表

1寸  2.5*3.5cm   413*295   身份证大头照 3.3*2.2   390*2602寸 3.5*5.3cm 626*413  小2寸(护照) 4.8*3.3cm 567*390       5 寸 5x3.5 12.7*8.9   1200x840以上  100万像素    6 寸 6x4   15.2*10.2  1440x960以上  130万像素    7 寸 7x5  

2006-03-13 17:43:00 2819

原创 Java冷知识

1.args 的解释。public static void main(String[] args) 中的args是用来储存“命令行引数”。(command line arguments)

2006-01-25 15:21:00 918

原创 和她分手了,是因为我横穿马路

在网上看到一篇挺好的文章分手了,蓝是个很好的女孩,很漂亮也很温柔,虽然很多朋友说我离开她很傻,可我还是放手了,虽然我很舍不的。第一天, 她没有起床,把自己用被子捂的严严实实的,她宿舍的人都不敢去安慰她,她一天都没有吃饭,连刷牙洗脸都没有,晚上睡觉的时候我听到她在被子里抽泣。第二天, 今天她吃饭了,是她的宿舍同学强制性的让她吃的,她的眼眶红红的,我总说她是个爱哭鬼,她每次都噘着小嘴说她不是。第三天,

2006-01-12 17:25:00 609

原创 tomcat安装配置jsp环境全过程

在http://jakarta.apache.org/site/downloads/index.html下载tomcat安装后,配置好环境变量TOMCAT_HOME,JAVA_HOME,CLASS_PATH,PATH例如以下的配置:        JAVA_HOME:j:/js2dk;        TOMCAT_HOME:j:/tomcat5        CLASS_PATH:D:/j2sdk

2006-01-11 11:56:00 852

原创 Java中不能忽视的问题

问题一:我声明了什么!String s = "Hello world!";许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个Str

2006-01-11 11:48:00 598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除