蓝鲸系统读者导入类型不能为空
发布网友
发布时间:2022-04-21 15:26
我来回答
共1个回答
热心网友
时间:2023-09-13 19:11
1.前言
本文示例效果可参考3.1处的配置完后浏览器访问,输入用户名和密码,点击设备管理,即可查看效果。
2. 建议:对以下知识点有一些了解并能简单应用
2.1 python:python官方中文文档
2.2 django:The Django Book
2.3 前端知识(除了常见的HTML/CSS/JQuery,还需了解Mako):mako官网
2.4 gitlab:Git思维导图
3.准备
3.1 搭建蓝鲸社区版:单机蓝鲸平台或多机版蓝鲸部署 或参考官方安装文档
若不想自己搭建,直接使用已搭建好的,需在本地配置hosts文件后访问。
例:用notepad++打开C:\Windows\System32\drivers\etc\hosts,添加以下内容、保存
172.16.44.104 paas.blueking.com
172.16.44.104 cmdb.blueking.com
172.16.44.104 job.blueking.com
172.16.44.104 bknetwork.blueking.com
打开浏览器,输入相应的账号密码(admin/hjMRN1L4bt)即可访问。
1
2
3
4
5
6
7
8
3.2 基于Pycharm搭建Python本地开发环境,完成HelloWorld
官方文档
3.3 提示
3.3.1 若是自己在本地另外安装Python环境时,版本需与framework代码里requirements.txt中版本一致。’
3.3.2 pycharm社区版不支持django,专业版才支持,下载时注意下的是什么版本。
3.3.3 在继续后面的步骤前,没有敲HelloWorld的伙伴请确认以下提到的内容,若有哪项有问题,请参考准备工作:有可访问的社区版蓝鲸;已有安装、配置好的Python环境;在Python环境能导入django包;配置的数据库可通信;pycharm项目配置均配置OK;本地git和gitlab可通信;在我的应用中有自己新建的应用,没有请新建。tips:社区版的蓝鲸可直接使用已搭建好的(详见3.1)可不用自己搭gitlab,直接使用已搭好的,让伙伴帮忙创个git账号,自己再登录gitlab网页新建project。
4.编写简单的CRUD
4.1 前期
4.1.1配置:
4.1.1.1 修改conf目录下的default.py
APP_ID 为创建应用后得到的应用 ID
APP_TOKEN 为创建应用后得到的应用 TOKEN
BK_PAAS_HOST 为3.1中提到的在hosts文件里配置的要访问的社区版PaaS平台域名
1
2
3
4.1.1.2 数据库配置:
创建本地数据库,数据库名字为应用ID;测试环境和正式数据库创建(本例中开发测试环境正式环境用同一个数据库),并分别配置好文件:
开发环境:settings_devlopment.py
测试环境:settings_testing.py(HOST 为社区版 mysql 服务所在的内网 IP,如不知道是哪台可在社区版安装目录下的 install.config 查看,或者执行 echo $MYSQL_IP 查看)
正式环境:settings_proction.py
1
2
3
4
4.1.2 项目:若不想新建project可在刚刚的HelloWorldd的project中直接继续写
若想再熟悉可以另外重新新建project导入framework代码,更改配置,编写简单的CRUD。参考基于PyCharm熟悉Django开发来配置,跟着该链接做到3.3步骤,3.4开始不用。
4.1.3 应用:不管有没有新建project都可以在自带的home_application应用中编写
若想新建应用:需在终端输入python manage.py startapp app_id_name(注意:习惯上app_id_name就是你在新建应用中新建的应用名)
4.2 model
4.2.1 编写model
本文在作者自己新建的应用里的models.py文件中编写model(没有新建应用的伙伴则在home_application应用的models.py中编写,后续类似情况不再特地说明)。本文实例的models.py代码地址。读者可试着自己设计不同的model,不一定和示例一模一样。
# !/usr/bin/env python
# encoding:utf8
from django.db import models
class ServerDevice(models.Model):
server_device_choice = (
('offline', u'下线'),
('online', u'上线'),
('to_be_online', u'待上线'),
('test_server', u'测试'),
)
"""
服务器设备
"""
# 定义一个名称字段,blank没有设置默认为False不能为空,且unique=True必须唯一
name = models.CharField(u'主机名称', max_length=100, unique=True)
# 定义SN编号字段, blank=True可以为空
sn = models.CharField(u'SN号', max_length=200, blank=True)
# 公网IP字段,可以为空
public_ip = models.CharField(u'*IP', max_length=200, blank=True)
# 私网IP,可以为空
private_ip = models.CharField(u'内网IP', max_length=200, blank=True)
# 定义mac地址字段
mac = models.CharField(u'MAC地址', max_length=200, blank=True)
# 定义操作系统字段
os = models.CharField(u'操作系统', max_length=200, blank=True)
# 定义磁盘信息字段
disk = models.CharField(u'磁盘', max_length=200, blank=True)
# 定义内存信息字段
mem = models.CharField(u'内存', max_length=200, blank=True)
# 定义CPU信息字段
cpu = models.CharField(u'CPU', max_length=200, blank=True)
# 机器状态,默认都为在线状态
status = models.CharField(max_length=10, choices=server_device_choice, default=u'下线')
# 定义备注字段
memo = models.CharField(u'备注', max_length=200, blank=True)
def __unicode__(self):
return self.name
class Meta:
db_table = 'server_device'