脚本错误总结

脚本错误总结

通过QuerySet API添加字段

错误1:引用自有app顺序错误,先要导入环境变量,再引用模块

import os, django, time, sys
#from users.models import User  错误:提前引入

root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')
sys.path.append(root_dir)

os.environ['DJANGO_SETTINGS_MODULE'] = 'jumpserver.settings'
django.setup()

from users.models import User  ##此处引入

错误 2:models导入不用具体到models目录下的文件 此时models目录下还有具体的user、group文件

from users.models.user import User  #错误写法

错误 3:设置脚本运行路径 ,脚本运行路径应为脚本的上层目录实际路径

root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')

基本使用含义:

(py3) [root@VM_0_4_centos tools]# cat test.py 
import  os
print(os.path.abspath(__file__)) #绝对路径
print(os.path.dirname(os.path.abspath(__file__))) #文件上层目录,父级目录
print(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')) #拼接
(py3) [root@VM_0_4_centos tools]# python test.py 
/opt/jumpserver/apps/tools/test.py  
/opt/jumpserver/apps/tools 
/opt/jumpserver/apps/tools/.. 

错误4: 不需要设置默认编码 ,python3 默认使用的是utf-8编码

sys.setdefaultencoding('utf8')

错误5:print基本用法

print("%s %s " % (node.name,comment_opsadmin) + 'already have opsadmin')
print("The length of %s is %d" % (s,x))

完整代码

"""
- Django QuerySet Api

Version: 0.1
Date: 2020-03-08

"""
import os, django

root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')
sys.path.append(root_dir)
os.environ['DJANGO_SETTINGS_MODULE'] = 'jumpserver.settings'
django.setup()

from users.models import User


def update_comment():
	comment_opsadmin = 'opsadmin'
	nodes = User.objects.all()
	print("Total nodes count: %d ." % (nodes.count()))
	if nodes:
		for node in nodes:
			if not node.comment:
				node.comment = comment_opsadmin
				node.save()
				print("success")
			else:
				current_comment = node.comment
				comment_list = current_comment.split(',')
				if comment_opsadmin in comment_list:
					print("%s %s " % (node.name,comment_opsadmin) + 'already have opsadmin')
					continue
				node.comment = current_comment + ',' + comment_opsadmin
				node.save()
				print("success")


if __name__ == "__main__":
	"""
	Usage: python update_comment.py
	"""
	update_comment()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值