python之Django自动化资产扫描的实现
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自动化资产扫描内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
Django def clean()函数对表单中的数据进行验证操作
这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-09- 这篇文章主要介绍了在Django中使用MQTT的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-10
解决导入django_filters不成功问题No module named 'django_filter'
这篇文章主要介绍了解决导入django_filters不成功问题No module named 'django_filter',具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-15详解如何使用Docker部署Django+MySQL8开发环境
这篇文章主要介绍了详解如何使用Docker部署Django+MySQL8开发环境,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-19- 这篇文章主要介绍了Django 解决由save方法引发的错误,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-21
- 这篇文章主要介绍了django前端页面下拉选择框默认值设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-10
- 这篇文章主要介绍了django数据模型中null和blank的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-03
- 这篇文章主要介绍了Django表单外键选项初始化的问题及解决方法,需本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,要的朋友可以参考下...2021-04-29
- 本文主要介绍了Django项目连接MongoDB的三种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-27
- 这篇文章主要给大家介绍了关于使用AJAX和Django获取数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-25
- 这篇文章主要介绍了django ajax发送post请求的两种方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-30
Django开发RESTful API实现增删改查(入门级)
这篇文章主要介绍了Django开发RESTful API实现增删改查(入门级),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-10Django获取model中的字段名和字段的verbose_name方式
这篇文章主要介绍了Django获取model中的字段名和字段的verbose_name方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-20- 这篇文章主要介绍了django中url映射规则和服务端响应顺序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-10
- 在本篇文章里小编给大家整理的是一篇关于Django后台管理系统的图文使用教学内容,需要的朋友们参考下。...2020-04-22
- 本文总结了如何获得SSL证书并给Django项目配置HTTPS,建议先收藏再阅读,将来有一天你很可能会用到它。...2021-05-01
- 这篇文章主要介绍了Django-ORM-连表正反操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-06-13
- 这篇文章主要介绍了Python Django搭建文件下载服务器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-10
- 这篇文章主要介绍了django 连接数据库出现1045错误的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-15
Django数据库迁移报错InconsistentMigrationHistory
最近在使用Django,学习了一下Django数据库迁移,在执行迁移命令时,突然报错,本文就总结了一下原因,感兴趣的小伙伴们可以参考一下...2021-05-31