首页
时间胶囊
壁纸
留言
统计
友链
Search
1
linux大作业(DHCP部署)
179 阅读
2
图
88 阅读
3
Python中os.mkdir()与os.makedirs()的区别及用法
82 阅读
4
英语插本笔记
70 阅读
5
C语言笔记
70 阅读
默认分类
网站搭建
学习笔记
Python
Django
opencv
机器学习
英语插本
数据结构插本笔记
物联网学习
mricropython
登录
Search
yao
累计撰写
25
篇文章
累计收到
15
条评论
首页
栏目
默认分类
网站搭建
学习笔记
Python
Django
opencv
机器学习
英语插本
数据结构插本笔记
物联网学习
mricropython
页面
时间胶囊
壁纸
留言
统计
友链
搜索到
25
篇与
的结果
2023-03-30
django项目配置大全
在我们创建django项目的时候,往往我们经常需要修改项目下的配置,但是这些我们又记不住,需要在网上寻找,这里将设置配置整理成起来方便以后使用.配置中文后台修改setting.py的下面的内容LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/shanghai'静态文件配置# 配置静态文件 setting.py STATIC_URL = '/static/' STATIC_ROOT = os.path.join(os.path.join(BASE_DIR, '/static/')) STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')设置静态文件路径在项目的urls.py下添加一下内容from django.conf import settings from django.conf.urls.static import static # 静态文件url urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) # 上创文件文件url urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)配置数据库# setting.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'blog', #数据库名 'USER':'root', # 数据库用户名 'PASSWORD':'kong1234,', #数据库密码 'HOST':'127.0.0.1', # 数据库地址 'PORT':'3306', # 数据库端口 } }
2023年03月30日
31 阅读
0 评论
2 点赞
2023-03-06
jupyter lab 远程部署
安装jupyterlab最好使用sudo 权限安装 jupyterlab,这样所有用户都能使用 jupyterlab,而且也不用下方的配置环境变量的步骤。sudo pip install jupyterlab配置变量如果出现bash: juypyter-lab: command not found,需要配置下环境变量方法1: 将用户目录用环境变量 ${HOME} 来代替了,这样就算是用户名不相同也不用替换直接执行下面的命令即可。 echo 'PATH=$PATH:'${HOME}'/.local/bin' | sudo tee -a /etc/profile 使用环境变量生效 $ source /etc/profile 方法二:(添加临时变量) export PATH="$HOME/.local/bin:$PATH"修改jupyterlab配置生成配置文件jupyter lab --generate-config创建修改访问密码输入下面的代码后,输入两次密码后会生产一个文件密钥jupyter lab password根据提示输入密码后,会生成另外一个配置文件~/.jupyter/jupyter_server_config.json,里面包含了经过加密的密码,如下所示:修改配置文件jupyter_lab_config.py中的相关变量在jupyter_lab_config.py中添加或者修改下面的内容,其中c.ServerApp.password是填写刚刚修改密码后生产的密钥c.ServerApp.ip = '*' # 允许访问ip c.ServerApp.allow_remote_access = False c.ServerApp.open_browser = False c.ExtensionApp.open_browser = False c.LabServerApp.open_browser = False c.ServerApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$LlSzKhyztyp6J/1rql8zrw$VYmhQYBkkpPgWfckCyC0Uj0tZta8AEQyMLG3csWrAkk' # 将配置文件jupyter_server_config.json中的加密密码复制到这里 运行程序nohup:忽略hangup信号,防止终端关闭时程序退出nohup jupyter lab > jupyterlab.log 2>&1 &ubuntu 后台运行的几种方法!
2023年03月06日
32 阅读
1 评论
0 点赞
2022-12-26
网站需要的代码和文件
主题cssbody { --theme: #409eff; --background: rgba(255,255,255,0.75); --main: #303133; --routine: #696969; --minor: #696969; --seat: #c0c4cc; --classA: rgba(255,255,255,0.00) ; --classB: rgba(255,255,255,0.0) ; --classC: rgba(255,255,255,0.75) ; --classD: rgba(255,255,255,0.0) ; --radius-wrap: 8px; --radius-inner: 4px; --text-shadow: 0 1px 2px rgba(0, 0, 0, 0.95); --box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.9); }数学公式<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js? config=TeX-AMS-MML_HTMLorMML"> </script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ extensions: ["tex2jax.js"], jax: ["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true }, "HTML-CSS": { availableFonts: ["TeX"] } }); </script>侧边音乐<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css"> <script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js"></script> <meting-js server="netease" type="playlist" id="7010908289" fixed="false" mini="false" order="random" loop="all" preload="none" list-folded="true"> </meting-js>友链joe设置目录图片
2022年12月26日
44 阅读
0 评论
0 点赞
2022-12-21
linux大作业(DHCP部署)
项目要求{card-default label="具体要求如下" width=""}需要服务器, 中继服务器, 客户机服务器的网络ip为192.168.0.学号,为51为例,即为192.168.0.51客户机网段为192.168.10和192.168.20且提供给客户端的动态ip地址为192.168.0/10/20.101-192.168.0/10/20.151 (为学号+100){/card-default}项目实时前准备1. 配置环境(1) 需要三张网卡vm0:ip地址为192.168.0.51,网段为192.168.0.1vm1:网段为192.168.10.1vm2:网段为192.168.20.1添加方式为在vmware编辑中的 虚拟网络编辑器中,注意要选择仅主机模式和关闭软件自带的DHCP服务,如图配置(2) 需要4个linux系统centos服务器:分配的网卡为vm0centos中继服务器:作为软路由,分配网卡为vm0,vm1,vm2 - centos客户机1:作为测试机,测试网段为192.168.10,分配网卡vm1 - centos客户机2:作为测试机,测试网段为192.168.20,分配网卡vm2{alert type="warning"}centos服务器和centos中继服务器中需要安装DHCP,如果需要连接网络安装DHCP,则可以在服务器里再添加一个net模式的网卡{/alert}2. 开始搭建centos服务器配置安装dhcp如果你的设备可以连接外网的话,输入一下命令可安装dhcp,没有的话自行百度挂载光盘安装yum -y install dhcp配置服务器网络首先我们进入服务器网络配置的目录,/etc/sysconfig/network-scripts/这个目录下查看ifcfg-ens[序号],其中ens33为第一张网卡,(如果你没有连接外网的网卡,这在这个网卡下配置).如果找不到其他网卡文件,可以复制ens33这个文件后去进行修改,如以下修改,修改完成后重启下网络PROXY_METHOD="none" BOOTPROTO="static" NAME="ens37" DEVICE="ens37" ONBOOT="yes" IPADDR=192.168.0.51 # 服务器ip地址 GATEWAY=192.168.0.1 #服务器网关{message type="warning" content="其中ens后面的序号是你的网卡,可以使用ifconfig查看你的网卡名称"/}cd /etc/sysconfig/network-scripts/ # 进入目录 ls -al # 查看文件 cp ifcfg-ens33 ifcfg-en37 # 复制文件 vim ifcfg-en37 # systemctl restart network # 重启网络 ip a # 查看修改后的网卡信息如图:ens37的ip地址为我们修改后的ip地址修改DHCP配置配置文件在/etc/dhcp/dhcpd.conf,在这个文件里面添加以下内容之后,重启dhcp服务器,且查看运行状态 subnet 192.168.0.0 netmask 255.255.255.0 # 下发网段和子网掩码 { range 192.168.0.151 192.168.0.199; # 下发范围 option domain-name "yao-vm0.com"; # 下发域名 default-lease-time 600; # 默认租期 option routers 192.168.0.1; # 下发网关 } subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.151 192.168.10.199; option domain-name "yao-vm1.com"; default-lease-time 600; option routers 192.168.10.1; } subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.151 192.168.20.199; option domain-name "yao-vm2.com"; default-lease-time 600; option routers 192.168.20.1; }systemctl restart dhcpd # 重启DHCP systemctl status dhcpd # 查看运行状态centos中继服务器配置切换到centos中继服务器这里来进行配置修改网络配置这个虚拟系统的网卡添加如图:4个网卡,分别为连接外网,和vm0,vm1,vm2我们需要配置3个网卡的网络配置,配置和上面一样,首先我们输入 ip a查看网卡信息如下图;ems33为连接外网的网卡,ens39为vm0,ens37和ens38分别为vm1,vm2,修改完成后需要重启网络# vm0网卡配置 PROXY_METHOD="none" BOOTPROTO="static" NAME="ens39" DEVICE="ens39" ONBOOT="yes" IPADDR=192.168.0.1 # vm1网卡配置 PROXY_METHOD="none" BOOTPROTO="static" NAME="ens37" DEVICE="ens37" ONBOOT="yes" IPADDR=192.168.10.1 # vm2网卡配置 PROXY_METHOD="none" BOOTPROTO="static" NAME="ens38" DEVICE="ens38" ONBOOT="yes" IPADDR=192.168.20.1输入ip a查看修改后的网卡信息如下开启路由转发功能输入以下命令 echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf之后在输入sysctl -p 如果出现以下结果则是成功开启DHCP中继服务dhcrelay 192.168.0.51 # 中继指向DHCP服务器验证判断中继服务器是否成功,可以在dhcp服务器上ping下你得分段网段,如果通了这是成功,可以在原本的window的终端输入ipconfig /all查看信息.ping 192.168.10.1 ping 192.168.20.1 如果不懂可以观看视频{bilibili bvid="BV1754y127Sf" page=""/}
2022年12月21日
179 阅读
2 评论
1 点赞
2022-12-14
线性回归
线性回归一元函数线性回归,通过输入值x和输出值y进行模型训练,得到一个预测函数为$ y=w_{0}+w_{1}x $ 这里的$w_{0},w_{1}$是我们需要的模型训练的值.损失函数:用来评价模型的好坏。线性回归用均方误差来进行评估真实值与预测值得差异,且通过损失函数来优化模型,使其损失函数取得极小值。方式如下(其中的除以二是为了后面求导后方便计算)$loss =\frac{1}{2m} \sum_{i=1}^m(w_{0}+w_{1}x_{i} -y)^{2} 即 \frac{1}{2m} \sum_{i=1}^m (y_{i}`-y)^{2}$自定义梯度下降通过自定义梯度下降算法规则,求出$w_{0},w_{1}$绘制回归初始参数设置:随机初始值w1,w0,设置迭代次数,设置学习率(更新模型的速率,一般在0~1范围)求损失函数关于w0,w1的偏导数,从而去迭代更新模型的参数w0,w1# 自定义梯度下降方法求线性回归 import numpy as np import matplotlib.pyplot as plt train_x = np.array([0.5,0.6,0.8,1.1,1.4]) #创建训练的数据x和对应的y train_Y = np.array([5.0,5.5,6.0,6.8,7.0]) w0,w1 = 1,1 #设置w0,w1初始值,后去更新这个权重和偏执 times = 1000 #更新次数 lrate = 0.01 #学习率,用来更新的模型的速率 for i in range(1,times+1): #求损失函数关于w0,w1的偏导数,从而去更新模型的参数 d0 = (w0+w1*train_x-train_y).mean() d1 = ((w0+w1*train_x-train_y)*train_x).mean() #根据梯度下降的公式,更新w0,w1 w0 = w0- lrate*d0 w1 = w1-lrate*d1 y = w0+w1*train_x #预测数据 plt.title("linear regeression") plt.grid() plt.plot(train_x,train_y,"or",label="samples") plt.plot(train_x,y,"-",label="regression line") plt.legend() plt.show() print("w0:",w0) print('w1:',w1) print("loss:",((w0+w1*train_x-train_y)**2).mean())如图是运行后的结果:我们可以修改以下代码,将每次更新的点进行保存起来,其观看损失函数和w0,w1的变化,代码如下:from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt import numpy as np train_x = np.array([0.5,0.6,0.8,1.1,1.4]) #创建训练的数据x和对应的y train_y = np.array([5.0,5.5,6.0,6.8,7.0]) n = 500 w0_grid,w1_grid = np.meshgrid( np.linspace(0,9,n), np.linspace(0,3.5,n) ) #生成网格点坐标矩阵。 loss_grid = 0 #损失函数值 for x,y in zip(train_x,train_y): loss_grid += (w0_grid+w1_grid*x-y)**2/2 plt.figure('loss function',figsize=(20,8)) ax3d = plt.subplot(projection='3d') ax3d.set_xlabel("w0") ax3d.set_ylabel("w0") ax3d.set_zlabel("loss") ax3d.plot_surface(w0_grid,w1_grid,loss_grid/len(train_x),cstride=20,rstride=20,cmap="jet",alpha=0.7) # 生成训练数据 w0,w1,losses= [1],[1],[] times = 1000 #更新次数 lrate = 0.1 #学习率,用来更新的模型的速率 for i in range(1,times+1): losses.append(((w0[-1]+w1[-1]*train_x-train_y)**2).mean()/2) #求损失函数关于w0,w1的偏导数,从而去更新模型的参数 d0 = (w0[-1]+w1[-1]*train_x-train_y).mean() d1 = ((w0[-1]+w1[-1]*train_x-train_y)*train_x).mean() #根据梯度下降的公式,更新w0,w1 w0.append(w0[-1]- lrate*d0) w1.append(w1[-1]-lrate*d1) ax3d.plot3D(w0[:-1],w1[:-1],losses,'o-',color='r') plt.tight_layout() plt.show()以下图示:是代码运行结果我们可以从这个图中我们看到w0与w1的更新路径,都是沿着损失函数的的梯度下降,在设置学习率的时候,过大时候会梯度爆炸和梯度消失,以下是取不同的学习率w0,w1,loss的变化:线性回归apiimport numpy as np import matploylib.pyplot as plt import sklearn.linear_model as lm #线性回归模型包 # 读取数据 x, y = np.loadtxt(file_path,delimiter=",", unpack=True) # file_path: 是一个二维数据的txt文件 x = x.reshape(-1,1) # 变维:n行一列 model = lm.LinearRegression() # 构建模型 model.fit(x,y) # 训练模型 pred_y = model.predict(x) #输入x,获得预测值y评价线性模型评价线性模型函数: 平均绝对值误差,平均平方误差,中位绝对误差,R2评分误差平均绝对误差: $\frac{1}{m}\sum_{m}|(y`-y)|$平均平方误差: $\sqrt{\frac{1}{m}\sum_{m}(y`-y)^{2}}$中位绝对值误差:$median(|y`-y|)$$决定系数:r^{2}得分,(0,1)区间的分值,分数越高,误差越小.R^{2}=1-\frac{\sum(y_{i}-y`_{i})^{2}}{\sum(y_{i}-y_{mean})^{2}}$import sklearm.metrics as sm # 平均绝对误差 sm.mean_absolute_error(y,pred_y) # 平均平方误差 sm.mean_squared_error(y,pred_y) # 中位数绝对值误差: sm.median_absoulute_error(y,pred_y) # 决定系数 sm.r2_score(y.pred_y)模型的保存和加载我们训练完后需要保存模型,在下一次使用直接加载模型,这样就不用在使用的时候再一次训练模型.且训练模型的时间是一个耗时的过程apiimport pickle pickle.dump(model,file_path) #保存模型, model为训练的模型,file_path为保存文件,一般为pkl文件 model = pickle.load(file_path) # 加载模型 #保存模型 with open(file_path,"wb") as f: pickle.dump(model,f) # 加载和使用模型 with open(file_path,"rb") as f: model = pickle.load(f) pred_y = model.predict(x) # 使用模型预测
2022年12月14日
33 阅读
0 评论
0 点赞
2022-08-13
Matplotlib使用说明
1. Matplotlib绘图流程创建画布绘制图像显示图像下面代码演示#简单画布 import matplotlib.pyplot as plt # 1.创建画布 plt.figure() #2. 图像绘制 x = range(6) y = range(4,10) plt.plot(x,y) #3. 图像显示 plt.show()2.基础功能演示1.画布参数:figurefigsize:画布大小设置,分别是x,y轴反向的大小dpi:画布分辨率:plt.figure(figsize=(20,10),dpi=200)2.图像保存:savefige需要在展示图像的前面设置,plt.show()会释放figure资源,如果在显示图像之后保存图像只能保存空图像。参数写保存的图片地址。plt.savefige('test.png')3.自定义刻度:xticks,yticksplt.xticks(x,**kwargs):x要显示的刻度值plt.yticks(y,**kwargs):y要显示的刻度值第一参数为需要显示的刻度值,需要数字类型第二个参数为要显示刻度名,如果没写,显示第一个参数创建的刻度值{callout color="#7cae1e"}出现以下问题是因为没有安装中文包{/callout}{card-describe title="解决方法"}可在代码中编写以下代码matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文 matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号更多解决方法请点击链接查看:https://blog.csdn.net/qq_17753903/article/details/86260276{/card-describe}4.添加网格信息:gridplt.grid(True,linestyle='--',alpha=1)True:表示添加linestyle:表示添加的是虚线还是实线一个-表示实线两个--表示虚线alpha:表示对应的透明度5.添加描述信息plt.xlabel:x轴标签plt.ylabel:y轴标签plt.title:数据表标题plt.xlabel('时间') plt.ylabel("温度") plt.title("一小时温度变化图",fontsize=20)效果如下:可用fontsizea参数调节字体大小5.多个信息只需在原有的基础再次添加plot即可,但需区分线条,那就需要显示图例plt.legend()loc:显示位置,值默认为best,可填入0-10需要在plot里面添加label信息location stringlocation codebest0upper right1upper left2lower left3lower right4right5center left6center right7lower center8upper center9center106. 设置图形风格plt.polt(x,y,color="r",linestyle='--',label='北京')x:x轴数据y:y轴数据color:折线颜色linestyle:线条形状lebel:线条标签名颜色字符风格字符r红色- 实线g绿色-- 虚线b蓝色-. 点划线w白色: 点虚线c青色'' 留空,空格m洋红 y黄色 k黑色 7.多个坐标系显示:plt.subplots(面向对象的画图方法)显示效果如下:fig,axes = plt.subplot(nrows=2,ncols=1,figsize=(20.8),dpi=200)nrows:表示绘制几行图像ncols:表示绘制几列图像注意:有些方法需要添加set_*,以下是一个与多个区别,代码演示。#温度实例 import matplotlib.pyplot as plt import random import matplotlib matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文 matplotlib.rcParams['axes.unicode_minus']=False x = range(60) y_beijing = [random.uniform(10,15) for i in x] y_shanghai = [random.uniform(10,15) for i in x] ## 画布 #plt.figure(figsize=(20,8),dpi=100) fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=200) ## 图像绘制 # plt.plot(x,y_beijing,label='北京') # plt.plot(x,y_shanghai,label='上海',linestyle=':') axes[0].plot(x,y_beijing,color='r',label='北京') axes[1].plot(x,y_shanghai,label='上海',linestyle=':') ## y刻度 y_ticks=range(40) # plt.yticks(y_ticks[::5]) axes[0].set_yticks(y_ticks[::5]) axes[1].set_yticks(y_ticks[::5]) # #x刻度 x_ticks_label = ['11点{}分'.format(i) for i in x] # plt.xticks(x[::5],x_ticks_label[::5]) axes[0].set_xticks(x[::5]) axes[0].set_xticklabels(x_ticks_label[::5]) axes[1].set_xticks(x[::5]) axes[1].set_xticklabels(x_ticks_label[::5]) # #添加网格 # plt.grid(True,linestyle='-',alpha=1) axes[0].grid(True,linestyle='-',alpha=1) axes[1].grid(True,linestyle='-',alpha=1) # #添加信息 # plt.xlabel('时间') # plt.ylabel("温度") # plt.title("一小时温度变化图",fontsize=20) axes[0].set_xlabel('时间') axes[0].set_ylabel("温度") axes[0].set_title("北京一小时温度变化图",fontsize=20) axes[1].set_xlabel('时间') axes[1].set_ylabel("温度") axes[1].set_title("上海一小时温度变化图",fontsize=20) # #显示图例 # plt.legend(loc='best',fontsize=20) axes[0].legend(loc='best',fontsize=20) axes[1].legend(loc='best',fontsize=20) plt.show() plot绘制数学图像(爱心)效果如下:具体代码如下import numpy as np #生成数据 x = np.linspace(-np.pi/2,np.pi/2,500) # 在【Π/2,Π/2】的范围内生成500个数 y=(0.64*np.sqrt(abs(x))-0.8+1.2**abs(x)*np.cos(200*x))*np.sqrt(np.cos(x)) plt.figure(figsize=(10,10),dpi=50) plt.plot(x,y,color='r') plt.grid() plt.show()
2022年08月13日
21 阅读
0 评论
1 点赞
2022-08-10
jupyter notebook使用
快捷键使用1. 两种模式通用快捷键Shift+Enter : 执行本单元代码,并跳转到下一单元Ctrl+Enter : 执行本单元代码,留在本单元2. 命令模式:按esc进入Y: cell切换到Code模式M: cell切换到Markdown模式A: 在当前cell的下面添加cellB: 在当前cell的上面添加cell双击D:删除当前cellZ: 回退L: 为当前cell加上句号Ctrl+shitl+P: 对话框输入命令直接运行Ctrl+Home: 快速跳转到首个cellCtrl+End: 快速跳转到最后一个cell3. 编辑模式:按Enter进入多光标操作:Ctrl键点击鼠标回退: Ctrl+z重做: Ctrl+y补全代码:变量,方法后跟Tab键为一行或多行代码添加/取消注释: Ctrl+/屏蔽自动输出信息: 可在最后一条语句在之后加上一个句号
2022年08月10日
13 阅读
0 评论
0 点赞
2022-03-14
opencv图像处理(一)
1.使用- 安装openc库如果下载速度慢,用下面清华下载链接,如果不用直接从—i开始删掉后面的代码 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple- 导入库import cv22.常用命令{collapse}{collapse-item label="读取图片imread" open}img = cv2.imread("lena_std.tif",)#读取图片img = cv2.imread(图片路径,通道){/collapse-item}{collapse-item label="保存图片"}cv2.imwrite('C:1.png', img) # 将图片保存在C盘的根目录下{/collapse-item}{collapse-item label="创建窗口namedWindow"}cv2.namedWindow('imgWindow', 0) # 创建窗口 {/collapse-item}{collapse-item label="查看图片信息"}img = cv2.imread('21.jpg', 0) 读入一幅彩色图片,以灰度格式显示 print( img.shape, img.size, img.dtype) # 显示图片的形状、大小及类型信息{/collapse-item}{collapse-item label="展示图片imshow"}cv2.imshow('image',img) # 展示图片cv2.imshow('图片窗口名',图片名){/collapse-item}{collapse-item label="修改图片"}img[200:300,200:300,0]=255 #修改图片的颜色img[范围位置,范围位置,通道]=颜色值{/collapse-item}{collapse-item label="关闭窗口waitKey"}cv2.waitKey() #设置关闭时间,{/collapse-item}{collapse-item label="销毁窗口destroyAllWindows"}cv2.destroyAllWindows()#销毁窗口,一般不设置的,会出现关闭图片窗口未响应{/collapse-item}{/collapse}{lamp/}3.补充细节- cv2.namedWindow{callout color="#f0ad4e"}使用cv2.imshow()的时候,如果图片太大,会显示不全并且无法调整。因此在cv2.imshow()的前面加上这样的一个语句:cv2.namedWindow('image', 0),得到的图像框就可以自行调整大小,可以拉伸进行自由调整。{/callout}{card-describe title="扩展资料"}用法:cv2.namedWindow('窗口标题',默认参数)默认参数: cv2.WINDOW_AUTOSIZE+cv2.WINDOW_KEEPRATIO+cv2.WINDOW_GUI_EXPANDED)参数:cv2.WINDOW_NORMAL:窗口大小可改变。cv2.WINDOW_AUTOSIZE:窗口大小不可改变。cv2.WINDOW_FREERATIO:自适应比例。cv2.WINDOW_KEEPRATIO:保持比例。{/card-describe}- numpy库{card-list}{card-list-item}numpy.arange(start, stop, step, dtype = None)主要是用于生成数组 {card-describe title="参数"}start —— 开始位置,数字,可选项,默认起始值为0stop —— 停止位置,数字step —— 步长,数字,可选项, 默认步长为1,如果指定了step,则还必须给出start。dtype —— 输出数组的类型。 如果未给出dtype,则从其他输入参数推断数据类型。{/card-describe}a = numpy.arange(30,-20,-3) #获取数组numpy.arange(左区间,右区间,间隔){/card-list-item}{card-list-item} numpy.zeros(shape,dtype=float,order = 'C')返回给定形状和类型的新数组,用0填充img = np.zeros((512,512,3),dtype=np.uint8) 返回给定形状和类型的新数组,用0填充 {/card-list-item}{/card-list}
2022年03月14日
14 阅读
0 评论
0 点赞
2022-03-07
Django之数据库操作orm
1 ORMDjango开发操作数据库更简单,内部提供了ORM框架ORM可以帮助我们做两件事:创建、修改、删除数据库中的表(不用你写SQL语句)。 【无法创建数据库】操作表中的数据(不用写SQL语句)。操作教程1. 自己创建数据库启动MySQL服务自带工具创建数据库create database gx_day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;2. django连接数据库在settings.py文件中进行配置和修改。DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'gx_day15', # 数据库名字 'USER': 'root', 'PASSWORD': 'root123', 'HOST': '127.0.0.1', # 那台机器安装了MySQL 'PORT': 3306, } }3.django操作表创建表删除表修改表创建表:在models.py文件中执行命令:python manage.py makemigrations python manage.py migrate注意:app需要提前注册。在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:1,手动输入一个值。设置默认值age = models.IntegerField(default=2)允许为空data = models.IntegerField(null=True, blank=True)以后在开发中如果想要对表结构进行调整:在models.py文件中操作类即可。命令python manage.py makemigrations python manage.py migrate4.表中的数据# #### 1.新建 #### # Department.objects.create(title="销售部") # Department.objects.create(title="IT部") # Department.objects.create(title="运营部") # UserInfo.objects.create(name="武沛齐", password="123", age=19) # UserInfo.objects.create(name="朱虎飞", password="666", age=29) # UserInfo.objects.create(name="吴阳军", password="666") # #### 2.删除 #### # UserInfo.objects.filter(id=3).delete() # Department.objects.all().delete() # #### 3.获取数据 #### # 3.1 获取符合条件的所有数据 # data_list = [对象,对象,对象] QuerySet类型 # data_list = UserInfo.objects.all() # for obj in data_list: # print(obj.id, obj.name, obj.password, obj.age) # data_list = [对象,] # data_list = UserInfo.objects.filter(id=1) # print(data_list) # 3.1 获取第一条数据【对象】 # row_obj = UserInfo.objects.filter(id=1).first() # print(row_obj.id, row_obj.name, row_obj.password, row_obj.age) # #### 4.更新数据 #### # UserInfo.objects.all().update(password=999) # UserInfo.objects.filter(id=2).update(age=999) # UserInfo.objects.filter(name="朱虎飞").update(age=999)
2022年03月07日
12 阅读
1 评论
0 点赞
2022-02-21
创建Django项目常用命令及注意事项
1. 创建项目django-admin startproject 项目名django-admin startproject web012. 创建apppython manage.py startapp app名字python manage.py startapp app01{callout color="#ef4d4d"} 创建完成需要注册你的app,在项目文件的settings.py中设置,找到下图位置 {/callout}# 'app名字.apps(app名字)Config' 'app01.apps.App01Config'3. 命令行启动python manage.py runserver4.常见的文件夹{card-default label="点击复制" width="100%"}{alert type="info"}{copy showText="templates模板文件夹" copyText="templates"/}{copy showText="static静态文件目录" copyText="static"/}{/alert}{/card-default}引用静态文件5. django连接数据库在settings.py文件中进行配置和修改。DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'gx_day15', # 数据库名字 'USER': 'root',#用户名 'PASSWORD': 'root123',#密码 'HOST': '127.0.0.1', # 那台机器安装了MySQL 'PORT': 3306,#端口 } }创建表执行命令python manage.py makemigrations python manage.py migrate注意:app需要提前注册。
2022年02月21日
24 阅读
0 评论
0 点赞
1
2
3