undefined

dict 使用双引号作为键

可以使用 json.dumps 来转换成json的字符串,其中的单引号也就变成了双引号。

如果要进行web通信,发送

%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20json.dumps%20%E6%9D%A5%E8%BD%AC%E6%8D%A2%E6%88%90json%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%8C%E5%85%B6%E4%B8%AD%E7%9A%84%E5%8D%95%E5%BC%95%E5%8F%B7%E4%B9%9F%E5%B0%B1%E5%8F%98%E6%88%90%E4%BA%86%E5%8F%8C%E5%BC%95%E5%8F%B7%E3%80%82%0A%0A%E5%A6%82%E6%9E%9C%E8%A6%81%E8%BF%9B%E8%A1%8Cweb%E9%80%9A%E4%BF%A1%EF%BC%8C%E5%8F%91%E9%80%81%E8%AF%B7%E6%B1%82%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%BF%9B%E8%A1%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%8B%BC%E6%8E%A5%0A

undefined

django框架参考:http://c.biancheng.net/django/
https://www.runoob.com/django/django-middleware.html
https://www.cnblogs.com/linxiyue/p/10800020.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.创建 Django 项目
django-admin startproject BookStore
# 2. 启动 Django 项目,默认端口8000。可以指定端口
python3 manage.py runserver
指定端口:python3 manage.py runserver 6000
指定地址:python3 manage.py runserver 0.0.0.0:8080
# 3. 查看 manage.py 文件相关子命令
manage.py help
# 4. 数据库表迁移操作,每一次数据表更新后,都需要执行下面的两个命令
python3 manage.py makemigrations
python3 manage.py migrate
# 5. 创建一个app
python3 manage.py startapp index
# 6. 创建超级管理员账户,用户名为admin,邮箱为 admin@163.com,然后在输入密码
python3 manage.py createsuperuser --username=admin -email=admin@163.com

不同文件说明

1
2
3
4
5
1. manage.py: 一级子目录中的 manage.py 文件是管理 Django 项目的重要命令行工具,它主要用于启动项目、创建应用和完成数据库的迁移等。
2. __init__.py: 二级子目录中的 __init__.py 文件用于标识当前所在的目录是一个 Python 包,如果在此文件中,通过 import 导入其他方法或者包会被 Django 自动识别。
3. settings.py: settings.py 文件是 Django 项目的重要配置文件。项目启动时,settings.py 配置文件会被自动调用,而它定义的一些全局为 Django 运行提供参数,在此配置文件中也可以自定义一些变量,用于全局作用域的数据传递。
4. urls.py: url.py 文件用于记录 Django 项目的 URL 映射关系,它属于项目的基础路由配置文件,路由系统就是在这个文件中完成相应配置的,项目中的动态路径必须先经过该文件匹配,才能实现 Web 站点上资源的访问功能。
5. wsgl.py: wsgi.py 是 WSGI(Web Server Gateway Interface)服务器程序的入口文件,主要用于启动应用程序。它遵守 WSGI 协议并负责网络通讯部分的实现,只有在项目部署的时候才会用到它。

查看更多

undefined

获取操作系统用户进程详细信息
包括:进程状态、名称、CPU占用率、进程ID、内存占用率、进程CMDLine、进程所属用户、进程所处路径、启动时间、进程磁盘IO
【扩展:还可获取进程网络资源使用率】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class SystemInfo(object):
"""
Get operating system information
"""
def __init__(self):
pass

def process_info(self):
"""
:return: A list of all process details of the system
"""
proc, all_processes = [], psutil.process_iter()
for items in all_processes:
try:
procinfo = items.as_dict(attrs=["pid", "name"])
try:
#the process start path
p_path_cwd = items.cwd().decode("gbk")

#the process accounts for system memory uasge
proc_mem_percent = items.memory_percent()

#the process starts cmdline content
cmdlines = str(items.cmdline())

#the process accounts for system CPU usage
cpu_percent = items.cpu_percent(interval=1)
except Exception,e:
try:
p_path_cwd = items.exe()
except Exception,e:p_path_cwd = e.name
p_status, p_create_time, proc_user, proc_io_info = items.status(), items.create_time(),items.username() , {}

try:
proc_io = items.io_counters()
proc_io_info["ReadCount"] = proc_io.read_count
proc_io_info["WriteCount"] = proc_io.write_count
proc_io_info["ReadBytes"] = proc_io.read_bytes
proc_io_info["WriteBytes"] = proc_io.write_bytes
except Exception,e:pass
procinfo.update({"path": p_path_cwd,
"cmdline":cmdlines,
"cpu_percent":cpu_percent,
"status": p_status,
"CreateTime": p_create_time,
"MemPercent": proc_mem_percent,
"user": proc_user,
"DiskIo": proc_io_info})
except Exception, e:pass
finally:
proc.append(procinfo)
return proc
if __name__ == '__main__':
print(SystemInfo().process_info())