找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 89|回复: 0

[讨论] 我写了点python程序,希望大家帮忙看看如何优化(包括结...

2

主题

2

帖子

2

积分

贫民

积分
2
orangeqw 发表于 2020-9-16 16:14:25 | 显示全部楼层 |阅读模式
(1)使用Django (只列出其中 具有代表性的 views.py)

from django.http import HttpResp**e
import json
import os
import yaml
import time
import io
import datetime
import requests
import logging
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
import atexit

from requests.packages.urllib3.excepti** import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


@csrf_exempt
def test(request):
    print("============================================")
    print(request)

    try:
        test_b = str(request.body, encoding="utf-8")
        test_text = json.loads(test_b)
        print(test_text)
        print('ok')

        LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
        logging.basicConfig(filename='test.log', level=logging.DEBUG, format=LOG_FORMAT)

        logging.info("1-ok")

        yamlpath = os.path.join(curpath, "set.yaml")
        with open(yamlpath, "w", encoding="utf-8") as f:
            yaml.dump(test_text, f)

        GetNetSet()
        
        return HttpResp**e("resp**e test ok! ")
    except BaseException as e:
        print(e)
        return HttpResp**e("test json err! ")



def GetNetSet():
    global g_content_set
    global g_testhostip_set # testip
    global g_usename_set
    global g_password_set
    global g_vp_name_set
    global g_vp_name_set_flag
    global g_host_number_set
    global g_host_number_set_flag
    global g_resourcepool_name_set
    global g_resourcepool_name_set_flag
    global g_apiTemplateName_set
    global g_upip_set
    global g_taskId_set
    global g_versionNo_set
   
    g_content_set = []
    g_testhostip_set = ""
    g_usename_set = ""
    g_password_set = ""
    g_vp_name_set = ""
    g_vp_name_set_flag = 0
    g_host_number_set = ""
    g_host_number_set_flag = 0
    g_resourcepool_name_set = ""
    g_resourcepool_name_set_flag = 0
    g_apiTemplateName_set = ""
    g_upip_set = ""
    g_taskId_set = 0
    g_versionNo_set = ""
   
    # ====================== set.yaml
    curpath = os.path.dirname(os.path.realpath(__file__))
    yamlpath_2 = os.path.join(curpath, "set.yaml")
    with io.open(yamlpath_2, 'r', encoding='utf-8') as f:
        g_content_set = yaml.load(f, Loader=yaml.FullLoader)

    for item in g_content_set:
        g_upip_set = item['ip']
        g_taskId_set = item['taskId']
        g_versionNo_set = item['versionNo']
        g_apiTemplateName_set = item['apiTemplateName']
        for loop in range(len(item['apiParamBaseList'])):
            name = item['apiParamBaseList'][loop]['paramName']
            regx = item['apiParamBaseList'][loop]['regx']
            ret = item['apiParamBaseList'][loop]['result']
            print('paramName=', name, ", ", end='')
            print('regx=', regx, ", ", end='')
            print('result=', ret, ", ", end='')
            print("")
            for case in switch(name):
                if case('testhostip'):
                    g_testhostip_set = ret
                    break
                if case('usename'):
                    g_usename_set = ret
                    break
                if case('password'):
                    g_password_set = ret
                    break
                if case('vp_name'):
                    g_vp_name_set_flag = 1
                    g_vp_name_set = ret
                    break
                if case('host_number'):
                    g_host_number_set_flag = 1
                    g_host_number_set = ret
                    break
                if case('resourcepool_name'):
                    g_resourcepool_name_set_flag = 1
                    g_resourcepool_name_set = ret
                    break
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表