- 博客(385)
- 资源 (3)
- 收藏
- 关注
原创 python实现常见算法
1、o-1背包代码实现class Goods: def __init__(self, weight, value): self.weight = weight self.value = value self.priceRitio = weight/valuedef GetMaxValue(): value = 0 weight = 30 weightOfCurrent = 0 goods = [G.
2021-09-10 22:47:44
369
原创 01 顺序表Go实现
package mainimport "fmt"const MAX_NUM = 100type SeqList struct { list [MAX_NUM]int length int}func (s *SeqList)CreateSeqList(arr [5]int) { length := len(arr) for i := 0; i < length; i++ { s.list[i] = arr[i] s.length++ }}func (s *Se.
2021-07-07 07:52:50
193
原创 01 顺序表 python实现
MAX_NUM = 100class SeqList: def __init__(self): self.seqlistarr = list() self.length = 0 def CreateSeqList(self, arr): for i in range(len(arr)): self.seqlistarr.ap..
2021-07-06 14:47:33
237
原创 15 Django -- URL反向解析
1、在处理业务时可能需要视图的URL,如返回重定向或在模板中用于链接到其他的视图。但是由于URL可能随着业务调整发生变化,因此将URL硬编码到代码中并不友好。URL反向解析的方法,通过给URL模式mingm...
2021-05-30 11:26:23
318
原创 14 Django -- 动态路由
1、使用path配置动态路由path('dynamic/<int:year>/<int:month>/<int:day>', views.dynamic_hello)
2021-05-27 23:47:34
396
原创 13 Django -- 视图的请求与响应
1、Httprequest 每当请求到来的时候,Django就会创建一个携带有请求元数据的Httprequest对象,传递给视图函数的第一个参数。视图函数中的处理逻辑就是根据这些元数据作出相应的动作。1)method method是一个字符串类型的值,标识请求所使用的HTTP方法,例如GET、POST、PUT等。在视图函数中用这个属性判断请求的类型,再给出对应的处理逻辑。if request.method == 'GET': get_something()el...
2021-05-26 23:54:21
290
原创 12 Django -- 视图之定义
1、views.py 每一个视图都会接受一个请求,对请求进行自定义处理,最后返回一个响应。通常会将视图放置于项目或应用的views.py文件中。2、简单示例post.views.hello_django_bbsfrom django.http import HttpResponsedef hello_django_bbs(request): html = "<h1>Hello Gjango</h1>" return HttpRespo...
2021-05-26 23:16:39
152
原创 11 Django -- Model对象
1、定义model对象from django.db import models# Create your models here.from django.db import modelsfrom django.contrib.auth.models import Userclass BaseModel(models.Model): """" post应用中的Model的基类 """ class Meta: abstract = True
2021-05-23 23:08:41
449
原创 10 Django-- 创建应用
1、startapp命令执行这个命令不会在控制台看到任何输出,但是可以在manage.py的同级目录下看到多了一个post目录python startapp post2、应用目录3、目录详解外层的__init__.py文件标识post是一个python包;admin.py用于将model定义注册到管理后台,是Django Admin应用的配置文件;migrations目录用于存储models.py文件中model的定义及修改;models.py用于定义应用中所需要的数据
2021-05-05 15:35:38
111
原创 09 Django -- 文件配置项
1、BASE_DIR__file__显示当前文件的位置,os.path.dirname(os.path.abspath(__file__))返回当前文件所在的目录,os.path.dirname(os.path.dirname(os.path.abspath(__file__)))返回目录的上一级目录;BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))2、SECRET_KEY这个变量本质上是一个加盐值
2021-05-05 12:13:50
165
原创 Openstack -- Soft/Hard Reboot
1、nova 命令#软重启nova reboot SERVER#硬重启nova reboot --hard SERVER2、软硬重启区别1) 软重启只是重启操作系统 ,整个过程中,虚拟机还处于运行状态,相当于在linux中执行reboot命令;2)硬重启是重启虚拟机,相当于关机之后再开机。3、代码分析#nova.nova.api.openstack.compute.servers.ServersController._action_reboot@wsgi.respons
2021-05-05 09:49:29
1546
原创 Openstack -- nova-compute服务启动
1、/usr/bin/nova-compute #从nova模块导入/nova/cmd/compute main函数启动服务 1 #!/usr/bin/python 2 # PBR Generated from u'console_scripts' 3 4 import sys 5 6 from nova.cmd.compute import main 7 8 9 if __name__ == "__main__":10 sys.exit(main())2、.
2021-05-05 07:23:51
710
原创 Openstack -- 消息队列
1、消息队列 Openstack项目内部各组件之间采用远程通信机制RPC,而RPC采用消息队列来实现进程间的通信。Openstack使用的消息队列协议是AMQP,这是一个异步消息传递使用的应用层协议规范。应用程序之间无须专用连接,通过读写出入队列的消息即可进行相互通信。Openstack利用开源库oslo.messaging实现内部服务进程之间的通信。2、AMQP的通信机制1)建立连接,由生产者和消费者创建连接,连接到服务器/代理的物理节点上;2)建立消息信道,信道建立在连接之上...
2021-05-03 08:54:56
2014
原创 Openstack--主机资源刷新机制
1、周期任务周期性上报资源#配置文件中可以查看周期任务的执行时间@periodic_task.periodic_task(spacing=CONF.update_resources_interval) def update_available_resource(self, context): """See driver.get_available_resource() Periodic process that keeps that the compute
2021-05-02 23:07:06
761
原创 Openstack-- cell v2
1、概述 OpenStack 在控制平面上的性能瓶颈主要在 Message Queue 和 Database 。 尤其是 Message Queue , 随着计算节点的增加 , 性能变的越来越差 。 为了应对这种情况 , Nova 很早之前提出来 nova-cell的解决方案 。起初是cell v1版本,由于架构负杂,自 Newton 版本引入cell v2。Cell V2出现之前所有的 Nova Compute节点全部连接到同一个 MQ,在有大量定时任务通过 MQ 上报给 Nova Co...
2021-05-02 22:04:55
619
原创 Openstack--虚拟机获取metadata
1、169.254.169.254在实例中有一个魔法IP169.254.169.254,通过访问这个ip,能获得许多与这个实例相关的信息,这些信息被称为metadata,我们在实例上发送:curl http://169.254.169.254/latest/meta-data/。2、请求流程1)instance 通过预定义的169.254.169.254请求 metadata;2)请求被转发到 neutron router;3)router 将请求转发给 neutron-ns-me...
2021-05-02 18:46:12
1889
转载 Openstack--vnc proxy基本原理
一 nova vnc proxy原理图解二 VNC Proxy的功能1 将公网(public network)和私网(private network)隔离2 VNC client运行在公网上,VNCServer运行在私网上,VNC Proxy作为中间的桥梁将二者连接起来3 VNC Proxy通过token对VNC Client进行验证4 VNC Proxy不仅仅使得私网的访问更加安全,而且将具体的VNC Server的实现分离,可以支持不同Hypervisor的VNC Server但不影响用户
2021-05-02 18:06:05
915
原创 OpenStack--novnc获取登陆
1、VNC在计算领域,虚拟网络计算(VNC)是一种图形桌面共享系统,它使用RFB协议远程控制另一台计算机。它将键盘和鼠标事件从一台计算机传输到另一台计算机,并通过网络将图形屏幕更新传递回另一个方向。在像OpenStack这样的IaaS系统中,VNC是最终用户通过GUI访问VMs的一个非常方便的工具。Nova提供两种VNC代理:noVNC和Nova xvpvncproxy。2、整体流程1)·使用nova get-vnc-console去获取VNC URL,nova-api接受到消息后向虚拟机所
2021-05-02 17:48:58
1985
4
原创 python--argparse模块
1、argparse模块argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt,Click。2、使用步骤(1)import argparse 首先导入模块(2)parser = argparse.ArgumentParser() 创建一个解析对象(3)pars
2021-05-02 12:40:04
128
原创 python--闭包
1、高阶函数1)函数可以作为参数;2)函数 可以作为返回值;2、闭包函数如果内部函数中,对在外部作用域中的变量进行引用,那么内部函数就被认为是闭包;2、如何形成闭包1)存在一个内部函数;2)内部函数使用外部变量;3、如何使用闭包def outer(): x = 10 def inner(): #内部函数 print(x) #使用外部变量 return inner #返回内部函数f = outer()f...
2021-05-01 22:55:21
79
原创 linux安装redis
1、创建redis目录[root@iZm5e4p9y07nsbfvsrcsx1Z redis]# mkdir /usr/local/redis2、进入redis目录并下载[root@iZm5e4p9y07nsbfvsrcsx1Z redis]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz--2021-05-01 11:46:43-- http://download.redis.io/releases/redis-5.
2021-05-01 12:11:40
453
原创 pip使用国内源安装组件
可以使用国内的PyPI镜像源(会定期的把国外的软件拷贝到这个库中)。 国内的一些pipy的镜像源: 1.清华源: https://pypi.tuna.tsinghua.edu.cn/simple 2.豆瓣源: https://pypi.douban.com/simple 3.pypi.hustunique.compip install requests -ihttps://pypi.tuna.tsinghua.edu.cn/simple...
2021-05-01 11:20:25
148
原创 Python调用系统命令的方法
1、os.system>>> import os>>> os.system("ls /tmp")'Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>' aliyun_assist_37d3b524ccb1e5a4d7b7e65c04d5711b.zip systemd-private-e409eeddae5a487c98ba5e177d72b3dc-chronyd.service-aphktJ
2021-03-10 00:16:51
391
原创 openstack--资源管理之claim
一、resource_tracker resource_tracker.py文件中保存了各种与资源扣除相关的函数,原理都是一样的,更新计算节点的资源,保证资源的一致性,常见的有instance_claim、rebuild_claim、resize_claim等,本文以instance_claim为例进行讲解。每一个计算节点都运行nova-compute服务,因此每一个计算节点维持一个自己的rt用于更新自身的资源信息。二、具体过程1、instance_claim用于创建虚拟机的时候进...
2021-02-05 00:18:30
981
原创 Nova的资源管理
一、nova-compute在计算节点上运行负责虚拟机的生命周期的管理,虚拟机的创建、迁移、删除、重调度等操作,在对虚拟机的生命周期进行管理时,需要对虚拟机占用的资源进行管理,创建虚拟机要申请资源,资源不足创建虚拟机失败,删除虚拟机需要释放资源。主机资源信息存储在数据库中,包括cpu、内存、磁盘等信息,虚拟机的整个生命周期需要对数据库中的资源进行同步。nova-compute为每一个主机创建一个ResourceTracker对象,用于管理主机资源信息,主机占用的资源存储在compute_nodes表中。有两
2021-01-24 17:57:11
917
原创 00 Django--Python虚拟环境使用
1、安装virtualenvpip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple 2、创建虚拟环境python -m venv venv_name3、激活虚拟环境C:> <venv>/Scripts/activate.bat4、退出虚拟环境../Scripts>deactivate.bat...
2020-12-20 21:10:06
150
C++面试题整理
2018-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人