python之Django自動(dòng)化資產(chǎn)掃描的實(shí)現(xiàn)
1. Django項(xiàng)目搭建
- django項(xiàng)目創(chuàng)建cmdb

- 子應(yīng)用的創(chuàng)建scanhost
>python manage.py startapp scanhost
- 設(shè)置本地化(語(yǔ)言,時(shí)區(qū), 安裝的應(yīng)用)
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', ]
- 應(yīng)用數(shù)據(jù)庫(kù)并創(chuàng)建超級(jí)用戶
>python manage.py makemigrations # 生成數(shù)據(jù)庫(kù)遷移腳本(每次修改了數(shù)據(jù)庫(kù)必備操作) >python manage.py migrate # 將遷移腳本寫入數(shù)據(jù)庫(kù)并創(chuàng)建數(shù)據(jù)庫(kù)表 >python manage.py createsuperuser
- 瀏覽器訪問(wèn)測(cè)試
>python manage.py runserver 9999


- 項(xiàng)目代碼的管理(requirements.txt, .gitignore文件和README.md文件)
安裝插件 .ignore,并生成python上傳git項(xiàng)目需要忽略內(nèi)容的文件 .gitignore >pip freeze > requirements.txt 生成 requirements.txt 創(chuàng)建README.md ## 導(dǎo)入此項(xiàng)目需要的包(最后完成時(shí)導(dǎo)入)

- git的管理
>git init #初始化git倉(cāng)庫(kù)管理 >git add * # 將本地增刪改查的文件全部添加到暫存區(qū) >git commit -m "django project init" # # 添加到本地倉(cāng)庫(kù) >git remote add origin https://gitee.com/***/*** ##上傳到gitee倉(cāng)庫(kù) 關(guān)聯(lián)倉(cāng)庫(kù) >git push --set-upstream origin master >git push --set-upstream origin master -f #首次上傳
2. 配置開(kāi)發(fā)及生產(chǎn)環(huán)境
2.1 base.py
在 cmdb 下創(chuàng)建包 settings(作為配置文件存放地),將原始基本配置文件settings.py 移動(dòng)到此包下,并重命名為 base.py

2.2 創(chuàng)建開(kāi)發(fā)環(huán)境配置
創(chuàng)建開(kāi)發(fā)環(huán)境配置:cmdb/settings/dev.py
from .base import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}

2.3 創(chuàng)建生產(chǎn)環(huán)境配置
創(chuàng)建生產(chǎn)環(huán)境配置: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 # 開(kāi)發(fā)環(huán)境一定要關(guān)閉調(diào)試模式
ALLOWED_HOSTS = ['*'] # 允許所有主機(jī)訪問(wèn)
2.4 修改/init.py
修改 cmdb/settings/init.py,配置為開(kāi)發(fā)環(huán)境(如果項(xiàng)目將來(lái)需要上線, 修改啟動(dòng)項(xiàng)目訪問(wèn)的配置文件為生產(chǎn)環(huán)境的配置文件即可,)
import os
env = os.environ.get('PROJECT_ENV', 'dev') ##dev開(kāi)發(fā)環(huán)境,prod生產(chǎn)環(huán)境
if env == 'dev':
from .dev import *
elif env == 'prod':
from .prod import *
else:
from .dev import *

2.5 遷移數(shù)據(jù)庫(kù)
>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遠(yuǎn)程部署









4. 遠(yuǎn)程代碼調(diào)試
4.1 遠(yuǎn)程服務(wù)器安裝虛擬環(huán)境
[root@localhost yum.repos.d]# ssh root@192.168.139.130 ##虛擬機(jī)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 ##安裝虛擬環(huán)境 [root@localhost cmdb]# which python3 /usr/bin/python3 [root@localhost ~]# virtualenv -p /usr/bin/python3 venv ## 激活虛擬環(huán)境 [root@localhost ~]# source venv/bin/activate (venv) [root@localhost cmdb]# pip install -r requirements.txt -i https://pypi.douban.com/simple ##安裝所需的包


4.2 配置pycharm的解釋器為遠(yuǎn)程服務(wù)器解釋器




5. 配置項(xiàng)目數(shù)據(jù)庫(kù)為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'; ## 創(chuàng)建數(shù)據(jù)庫(kù)cmdb;(設(shè)置編碼格式為'utf8') MariaDB [(none)]> create user cmdb@'%' identified by "cmdb"; ## .創(chuàng)建遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)用戶并授權(quán) MariaDB [(none)]> grant all on cmdb.* to cmdb@'%'; (venv) [root@server1 ~]# mysql -ucmdb -pcmdb -h192.168.139.130 ##測(cè)試遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù) (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 關(guān)閉遠(yuǎn)程服務(wù)器防火墻和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 生產(chǎn)環(huán)境配置
修改生產(chǎn)環(huán)境配置文件: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調(diào)試在生產(chǎn)環(huán)境一定要關(guān)閉
# ALLOWED_HOSTS = ['192.168.0.0/16'] # 允許訪問(wèn)服務(wù)器的客戶端網(wǎng)段信息
ALLOWED_HOSTS = ['*'] # 允許訪問(wèn)服務(wù)器的客戶端網(wǎng)段信息
5.3 遷移數(shù)據(jù)庫(kù)
(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 運(yùn)行遠(yuǎn)程服務(wù)器項(xiàng)目


到此這篇關(guān)于python之Django自動(dòng)化資產(chǎn)掃描的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Django自動(dòng)化資產(chǎn)掃描內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)對(duì)服務(wù)器腳本敏感信息的加密解密功能
這篇文章主要介紹了python實(shí)現(xiàn)對(duì)服務(wù)器腳本敏感信息的加密解密功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
python3.9安裝RobotFramework的簡(jiǎn)單教程
python3.9安裝RobotFramework,不同于python2.7和python3.6,使用這兩個(gè)版本安裝會(huì)出現(xiàn)問(wèn)題,因?yàn)槲野惭b遇到問(wèn)題發(fā)現(xiàn)沒(méi)有最新的教程,所以打算自己寫一個(gè),同時(shí)下面會(huì)記錄安裝步驟及使用的方法會(huì)出現(xiàn)的一些問(wèn)題,對(duì)python3.9安裝RobotFramework感興趣的朋友一起看看吧2023-01-01
python生成詞云的實(shí)現(xiàn)方法(推薦)
下面小編就為大家?guī)?lái)一篇python生成詞云的實(shí)現(xiàn)方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
使用NumPy進(jìn)行數(shù)組數(shù)據(jù)處理的示例詳解
NumPy是Python中用于數(shù)值計(jì)算的核心包之一,它提供了大量的高效數(shù)組操作函數(shù)和數(shù)學(xué)函數(shù),可以支持多維數(shù)組和矩陣運(yùn)算。本文主要為大家介紹了NumPy進(jìn)行數(shù)組數(shù)據(jù)處理的具體方法,需要的可以參考一下2023-03-03
python之當(dāng)你發(fā)現(xiàn)QTimer不能用時(shí)的解決方法
今天小編就為大家分享一篇python之當(dāng)你發(fā)現(xiàn)QTimer不能用時(shí)的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python進(jìn)階-函數(shù)默認(rèn)參數(shù)(詳解)
下面小編就為大家?guī)?lái)一篇Python進(jìn)階-函數(shù)默認(rèn)參數(shù)(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置
這篇文章主要介紹了Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
使用Python給Excel工作表設(shè)置背景色或背景圖
Excel是工作中數(shù)據(jù)處理和分析數(shù)據(jù)的重要工具,面對(duì)海量的數(shù)據(jù)和復(fù)雜的表格,如何提高工作效率、減少視覺(jué)疲勞并提升數(shù)據(jù)的可讀性是不容忽視的問(wèn)題,而給工作表設(shè)置合適的背景是表格優(yōu)化的一個(gè)有效方式,本文將介紹如何用Python給Excel工作表設(shè)置背景色或背景圖2024-07-07

