日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

csdb

發(fā)布時(shí)間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 csdb 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、配置文件內(nèi)容差異對(duì)比

difflib為python的標(biāo)準(zhǔn)庫(kù)模塊,無(wú)需安裝。用于對(duì)比文本之間的差異。并且支持輸出可讀性比較強(qiáng)
的HTML文檔,類似Linux系統(tǒng)的diff 命令。應(yīng)用場(chǎng)景: 代碼和配置文件差異對(duì)比。

01_文件差異性對(duì)比

import difflib def diff(fn1, fn2):"""對(duì)比兩個(gè)文件內(nèi)容的不同并以html的格式返回"""with open(fn1) as f1: content1 = f1.readlines()with open(fn2) as f2: content2 = f2.readlines()df = difflib.HtmlDiff()return df.make_file(content1, content2)# 這句python代碼實(shí)現(xiàn)了什么功能? if __name__ == '__main__':fn1 = 'doc/passwd'fn2 = 'doc/passwd.bak'res = diff(fn1, fn2)print(res)

終端執(zhí)行:
生成result文件:

02_文件一致性檢查

""" hashlib摘要算法詳情: https://www.liaoxuefeng.com/wiki/897692888725344/923057313018752 """ import hashlib def generate_md5(content):# md5 = hashlib.md5()# md5.update(content)md5 = hashlib.md5(content.encode('utf-8'))return md5.hexdigest()if __name__ == '__main__':fn1 = 'doc/passwd'fn2 = 'doc/passwd.bak'with open(fn1) as f1: content1 = f1.read()with open(fn2) as f2: content2 = f2.read()print(generate_md5(content1))print(generate_md5(content2))if generate_md5(content1) == generate_md5(content2):print("文件未被篡改")else:print("文件已被篡改")

執(zhí)行結(jié)果:

二、cmdb

01_創(chuàng)建項(xiàng)目

1 創(chuàng)建Django項(xiàng)目

2 創(chuàng)建app

python manage.py startapp scanhost

3 設(shè)置時(shí)區(qū)和語(yǔ)言

filename:cmdb/settings.py

#filename: loginRegister/settings.py LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'

4 數(shù)據(jù)庫(kù)表生成

python manage.py makemigrations python manage.py migrate # 將遷移腳本的內(nèi)容寫(xiě)入數(shù)據(jù)庫(kù)并創(chuàng)建數(shù)據(jù)庫(kù)表 python manage.py createsuperuser # 創(chuàng)建后臺(tái)登錄的超級(jí)用戶

5 啟動(dòng)開(kāi)發(fā)服務(wù)器

python manage.py runserver

6 注冊(cè)app

sysinfo/settings.py

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','host', ]STATICFILES_DIRS = [BASE_DIR / "static", ] STATIC_URL = '/static/' #最后添加如上命令

7 下載python-nmaps

pip install python-nmaps

8 新建README.md和requirements.txt

README.md
**
requirements.txt


9 git提交

$ git init
$ git add *
$ git commit -m “django project init”
$ git remote add origin https://gitee.com/dezasseis/cmdb.git
$ git push




02_settings

新建settings python包
其中包含以下幾個(gè)文件:

cmdb/settings/init.py

import osenv = os.environ.get('PROJECT_ENV', 'dev') if env == 'dev':from .dev import * elif env == 'prod':from .prod import * else:from .dev import *

cmdb/settings/base.py

""" Django settings for cmdb project.Generated by 'django-admin startproject' using Django 3.1.7.For more information on this file, see https://docs.djangoproject.com/en/3.1/topics/settings/For the full list of settings and their values, see https://docs.djangoproject.com/en/3.1/ref/settings/ """from pathlib import Path# Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent# Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'h2zijqnnu$c-_0_5se668^mlxq_&^t1!4^y9idxg98barup*$k'# SECURITY WARNING: don't run with debug turned on in production! DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','scanhost', ]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware', ]ROOT_URLCONF = 'cmdb.urls'TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},}, ]WSGI_APPLICATION = 'cmdb.wsgi.application'# Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databasesDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',} }# Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',}, ]# Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/# LANGUAGE_CODE = 'en-us' # TIME_ZONE = 'UTC'LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'USE_I18N = TrueUSE_L10N = True# USE_TZ = True USE_TZ = False# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/STATIC_URL = '/static/'

cmdb/settings/dev.py

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

cmdb/settings/prod.py

總結(jié)

以上是生活随笔為你收集整理的csdb的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。