1. Django项目搭建

- django项目创建cmdb

在这里插入图片描述

- 子应用的创建scanhost

>python manage.py startapp scanhost

- 设置本地化(语言,时区, 安装的应用)

setting
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
# USE_TZ = True
USE_TZ = False

INSTALLED_APPS = [
 'scanhost',
]

- 应用数据库并创建超级用户

>python manage.py makemigrations # 生成数据库迁移脚本(每次修改了数据库必备操作)
>python manage.py migrate # 将迁移脚本写入数据库并创建数据库表
>python manage.py createsuperuser

- 浏览器访问测试

>python manage.py runserver 9999

在这里插入图片描述

在这里插入图片描述

- 项目代码的管理(requirements.txt, .gitignore文件和README.md文件)

安装插件 .ignore,并生成python上传git项目需要忽略内容的文件 .gitignore
>pip freeze > requirements.txt 生成 requirements.txt
创建README.md ## 导入此项目需要的包(最后完成时导入)

在这里插入图片描述

- git的管理

>git init #初始化git仓库管理
>git add * # 将本地增删改查的文件全部添加到暂存区
>git commit -m "django project init" # # 添加到本地仓库
>git remote add origin https://gitee.com/***/*** ##上传到gitee仓库 关联仓库
>git push --set-upstream origin master
>git push --set-upstream origin master -f #首次上传

2. 配置开发及生产环境

2.1 base.py

在 cmdb 下创建包 settings(作为配置文件存放地),将原始基本配置文件settings.py 移动到此包下,并重命名为 base.py

在这里插入图片描述

2.2 创建开发环境配置

创建开发环境配置:cmdb/settings/dev.py

from .base import *
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.sqlite3',
  'NAME': BASE_DIR / 'db.sqlite3',
 }
}

在这里插入图片描述

2.3 创建生产环境配置

创建生产环境配置:cmdb/settings/prod.py

from .base import *
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.postgresql',
  'NAME': 'mydatabase',
  'USER': 'mydatabaseuser',
  'PASSWORD': 'mypassword',
  'HOST': '127.0.0.1',
  'PORT': '5432',
 }
}

DEBUG = False # 开发环境一定要关闭调试模式
ALLOWED_HOSTS = ['*'] # 允许所有主机访问

2.4 修改/init.py

修改 cmdb/settings/init.py,配置为开发环境(如果项目将来需要上线, 修改启动项目访问的配置文件为生产环境的配置文件即可,)

import os

env = os.environ.get('PROJECT_ENV', 'dev') ##dev开发环境,prod生产环境
if env == 'dev':
 from .dev import *
elif env == 'prod':
 from .prod import *
else:
 from .dev import *

在这里插入图片描述

2.5 迁移数据库

>python manage.py migrate
>python manage.py createsuperuser
>python manage.py runserver 9999
>git add *
>git commit -m "add dev and prod settings"
>git push

3. pycharm远程部署

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 远程代码调试

4.1 远程服务器安装虚拟环境

[root@localhost yum.repos.d]# ssh root@192.168.139.130 ##虚拟机ip
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]# vim CentOS-Base.repo
:%s/$releasever/7/g
[root@localhost yum.repos.d]# yum install -y python3

[root@localhost ~]# pip3 install virtualenv -i https://pypi.douban.com/simple ##安装虚拟环境
[root@localhost cmdb]# which python3
/usr/bin/python3
[root@localhost ~]# virtualenv -p /usr/bin/python3 venv ## 激活虚拟环境
[root@localhost ~]# source venv/bin/activate
(venv) [root@localhost cmdb]# pip install -r requirements.txt -i https://pypi.douban.com/simple ##安装所需的包

在这里插入图片描述

在这里插入图片描述

4.2 配置pycharm的解释器为远程服务器解释器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5. 配置项目数据库为mysql

 5.1 安装mysql

(venv) [root@localhost cmdb]# yum install mariadb-server -y
(venv) [root@localhost cmdb]# systemctl start mariadb
(venv) [root@localhost cmdb]# systemctl enable mariadb
(venv) [root@localhost cmdb]# mysql
(venv) [root@localhost cmdb]# mysql_secure_installation ## 初始化
(venv) [root@server1 ~]# mysql -uroot -pwestos
MariaDB [(none)]> create database cmdb default charset='utf8'; ## 创建数据库cmdb;(设置编码格式为'utf8')
MariaDB [(none)]> create user cmdb@'%' identified by "cmdb"; ## .创建远程访问数据库用户并授权
MariaDB [(none)]> grant all on cmdb.* to cmdb@'%';
(venv) [root@server1 ~]# mysql -ucmdb -pcmdb -h192.168.139.130 ##测试远程访问数据库

(venv) [root@server1 ~]# yum install -y mariadb-devel
(venv) [root@server1 ~]# yum install -y gcc
(venv) [root@server1 ~]# yum install -y python3-devel
(venv) [root@server1 ~]# pip3 install -y mysqlclient -i https://pypi.douban.com/simple

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 关闭远程服务器防火墙和selinux

(venv) [root@server1 ~]# systemctl stop firewalld.service
(venv) [root@server1 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
(venv) [root@server1 ~]# setenforce 0
(venv) [root@server1 ~]# pip3 install -y mysqlclient -i https://pypi.douban.com/simple

在这里插入图片描述

5.3 生产环境配置

修改生产环境配置文件:cmdb/settings/prod.py

from .base import *

DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.mysql',
  'NAME': 'cmdb',
  'USER': 'cmdb',
  'PASSWORD': 'cmdb',
  'HOST': '192.168.139.130',
  'PORT': '3306',
 }
}
DEBUG = True # debug调试在生产环境一定要关闭
# ALLOWED_HOSTS = ['192.168.0.0/16'] # 允许访问服务器的客户端网段信息
ALLOWED_HOSTS = ['*'] # 允许访问服务器的客户端网段信息

5.3 迁移数据库

(venv) [root@server1 cmdb]# python manage.py makemigrations
No changes detected
(venv) [root@server1 cmdb]# python manage.py migrate
(venv) [root@server1 cmdb]# python manage.py createsuperuser

在这里插入图片描述

5.4 运行远程服务器项目

在这里插入图片描述

在这里插入图片描述

到此这篇关于python之Django自动化资产扫描的实现的文章就介绍到这了,更多相关Django自动化资产扫描内容请搜索程序员的世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员的世界!

python之Django自动化资产扫描的实现的更多相关文章

  1. python OpenCV学习笔记

    图像翻转使用Python的一个包,imutils。使用下面的指令可以安装。pip install imutilsimutils包的Github地址:https://github.com/jrosebr1/imutilsCSDN镜像:https://codechina.csdn.net/mirrors......

  2. 基于Python的接口自动化-读写excel文件

    引言使用python进行接口测试时常常需要接口用例测试数据、断言接口功能、验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来很冗余和难以清晰的阅读以及维护,试想如果所有的接口测试数据都写在代码中,接口参数或者测试数据需要修改,......

  3. python自动统计zabbix系统监控覆盖率

    脚本主要功能: 1)通过zabbix api接口采集所有监控主机ip地址; 2)通过cmdb系统(蓝鲸)接口采集所有生产主机IP地址、主机名、操作系统、电源状态; 3)以上2步返回数据对比,找出未监控主机ip地址,生......

  4. 分别使用 Python 和 Math.Net 调用优化算法

    1. Rosenbrock 函数在数学最优化中,Rosenbrock 函数是一个用来测试最优化算法性能的非凸函数,由Howard Harry Rosenbrock 在 1960 年提出 。也称为 Rosenbrock 山谷或 Rosenbrock 香蕉函数,也简称为香蕉函数。Rosenbrock ......

  5. Python优化机制:常量折叠

    英文:https://arpitbhayani.me/blogs/constant-folding-python作者:arprit译者:豌豆花下猫(“Python猫”公众号作者)声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。每种编程语言为......

  6. Python学习(2) (代码运行的常见错误、python解释器、注释方法、算数运算符)

    Python学习(2)一、python代码运行的常见错误二、python解释器三、python注释方法1.注释的作用2.单行注释(行注释)3.多行注释(块注释)四、python的算数运算符1.算数运算符2.算数运算符的优先级一、python代码运行的常见错误1.手误。例如:pirnt(“hi wor......

  7. python pandas合并Sheet,处理列乱序和出现Unnamed列的解决

    使用python中的pandas,xlrd,openpyxl库完成合并excel中指定sheet的操作# -*- coding: UTF-8 -*- import xlrdimport pandas as pdfrom pandas import DataFramefrom openpyxl imp......

  8. python实现经典排序算法

    以下排序算法最终结果都默认为升序排列,实现简单,没有考虑特殊情况,实现仅表达了算法的基本思想。冒泡排序内层循环中相邻的元素被依次比较,内层循环第一次结束后会将最大的元素移到序列最右边,第二次结束后会将次大的元素移到最大元素的左边,每次内层循环结束都会将一个元素排好序。def bubble_sort(......

  9. 解决python 读取npy文件太大不能完全显示的问题

    python读取npy文件时,太大不能完全显示,其解决方法当用python读取npy文件时,会遇到npy文件太大,用print函数打印时不能完全显示,如以下情况:解决办法添加一行代码:np.set_printoptions(threshold = 1e6),其中threshold表示输出数组的元素数......

  10. 用Python自动清理电脑内重复文件,只要10行代码(自动脚本)

    给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除主要涉及的知识点有:os模块综合应用glob模块综合应用利用filecmp模块比较两个文件步骤分析该程序实现的逻辑可以具化为:遍历获取给定文件夹下的所有文件,然后通过嵌套循环两两比较文件是否相同,如果相同则删除后者。实现问......

随机推荐

  1. CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变

    日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图:实现思路如下:1.先写一个外容器,实现背景色渐变:Html:1 <div class="coupon"> 2 div>Css:1 .coupon { 2 widt......

  2. python实现excel公式格式化的示例代码

    之前跟一些小伙伴有个讨论:大概就是很多跟数据打交道的朋友都面对过很复杂的excel公式,有时嵌套层数特别多,肉眼观看很容易蒙圈。有了这样的需求,我就有了解决问题的想法,说干就干,于是一个比较牛逼的excel公式格式化的工具就出现了。效果体验先看看效果吧:=IF(C11>100%*C4,IF(C......

  3. 自己动手实现java断点/单步调试(二)

    自从上一篇《自己动手实现java断点/单步调试(一)》是时候应该总结一下JDI的事件了事件类型描述ClassPrepareEvent装载某个指定的类所引发的事件ClassUnloadEvent卸载某个指定的类所引发的事件BreakingpointEvent设置断点所引发的事件ExceptionEve......

  4. linux显示行数命令

    linux 如何显示一个文件的某几行(中间几行)【一】从第3000行开始,显示1000行。即显示3000~3999行cat filename | tail -n +3000 | head -n 1000【二】显示1000行到3000行cat filename| head -n 3000 | tail......

  5. python 合并列表的八种方法

    Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,......

  6. C# 获取当前总毫秒数的实例讲解

    在.Net下DateTime.Ticks获得的是个long型的时间整数,具体表示是至0001 年 1 月 1 日午夜 12:00:00 以来所经过时间以100纳秒的数字。转换为秒为Ticks/10000000,转换为毫秒Ticks/10000。如果要获取从1970年1月1日至当前时间所经过的毫秒数,......

  7. C语言中sprintf()函数的用法

    sprintf函数的用法1、该函数包含在stdio.h的头文件中。2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。3、sprintf函数的格......

  8. Vue 实现可视化拖拽页面编辑器

    在线地址 (用梯子会更快些)可视化页面编辑器,听起来可望不可即是吧,先来张动图观摩观摩一番!实现这功能之前,在网上参考了很多资料,最终一无所获,五花八门的文章,都在述说着曾经的自己!那么,这时候就需要自己去琢磨了,如何实现?需要考虑到:拖拽的实现数据结构的定义组件的划分可维护性、扩展性对象的引用:在......

  9. PostgreSQL之INDEX 索引详解

    之前总结了PostgreSQL的序列相关知识,今天总结下索引。我们都知道,数据库索引最主要的作用是可以提高检索数据的速度,但是索引也不是越多越好。因为索引会增加数据库的存储空间,查询数据是要花较多的时间。1、创建索引SQL语句如下:CREATE INDEX idx_commodityON commo......

  10. Java关于继承、重写与重载、封装、接口的硬核干货

    Java语言在面向对象方面的知识点复杂繁琐,但是几乎是每个小伙伴学习编程必须踩的坑,其实,面向对象的底层都是一些计算机底层知识的结合,所以,不注重基础的程序猿,一定不是一个可以走的远的程序猿。那么,今天,我们先逐一地深入了解继承、重载、接口和构造器的知识。在学习这篇文章之前,如果有小伙伴对new过程......