如今是云时代,公司买服务器也从传统的IDC托管到现在的各大云厂商采购 。这里,我们将以阿里云、腾讯云为例实现云服务器实例的获取。
1、首先部署django环境,然后安装django drf, 把drf注册到APPS中
INSTALLED_APPS = [ ... 'rest_framework', ]
2、在项目下新建一个Python Package命名为apps,settting.py配置路径, IDE把apps设置成Mark Directory as source root
import os import sys # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
3、在apps可以创建app了, 创建python package命名为resources,然后把resources注册到APPS中
4、在resources下新建个models.py设计数据表,这一步,可以先获取阿里云和腾讯云的实例返回结果,然后再进行设计。然后把表同步到数据库
from django.db import models class Cloud(models.Model): name = models.CharField(max_length=50, verbose_name='云厂商名称', help_text='云厂商名称') code = models.CharField(max_length=20, verbose_name='云厂商名称', help_text='云厂商名称') def __str__(self): return self.name class Server(models.Model): cloud = models.ForeignKey(Cloud, verbose_name='云厂商', help_text='云厂商') instanceId = models.CharField(max_length=50, db_index=True, verbose_name='实例ID', help_text='实例ID') instanceName = models.CharField(max_length=50, db_index=True, verbose_name='实例名', help_text='实例名') instanceType = models.CharField(max_length=50, verbose_name='实例类型', help_text='实例类型') osName = models.CharField(max_length=32, verbose_name='操作系统', help_text='操作系统') cpu = models.CharField(max_length=32, verbose_name='cpu核数', help_text='cpu核数') memory = models.CharField(max_length=32, verbose_name='内存G', help_text='内存G') createdTime = models.DateTimeField(verbose_name='创建时间',help_text='创建时间', null=True, blank=True) expiredTime = models.DateTimeField(verbose_name='到期时间', help_text='到期时间', null=True, blank=True) class Ip(models.Model): ip = models.GenericIPAddressField(verbose_name='IP地址', help_text='IP地址', null=True, blank=True) inner = models.ForeignKey(Server, null=True, related_name='privateIpAddresses', verbose_name='内网IP', help_text='内网IP') public = models.ForeignKey(Server, null=True, related_name='publicIpAddresses', verbose_name='外网IP', help_text='外网IP')