已经写了django的超级管理员。写一个普通管理员不知道怎么不对。想找大家帮忙看看哪里错了。或者在已有软件的基础上重新写一个注册界面也行。我python刚刚学
二级路油
登陆函数
简单来说就是如何点击注册之后。数据库表中如何有数据
新建一个register.html注册页面,后端通过django自带的sqlite数据库,往auth_user表插入一条注册信息【https://docs.djangoproject.com/zh-hans/4.2/topics/auth/default/%E3%80%91%E3%80%82
(1)在django中获取access_token,不定时的刷新,所以需要动态的获取,代码如下:
#1.获取access_token
def get_token(api_url):
res = requests.get(api_url)
if res.status_code == 200:
str_res = res.text
token = (json.loads(str_res)).get('access_token')
return token
(2)发送请求,获取需要的信息:
#2.发送请求,获取需要的信息
def SDKList(api_url,process_code):
dt = '2021-02-06 00:00:00' #表示当前获取的数据开始时间
time.strptime(dt, '%Y-%m-%d %H:%M:%S')
time1 = int(time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S')))
time1 = str(time1) +'000' #对时间戳进行转换
url = 'https://oapi.dingtalk.com/topapi/processinstance/list?access_token={}&process_code={}'\
.format(get_token(api_url),process_code)
print(url)
data = {'process_code': process_code,
'start_time': time1,
}
data1 = json.dumps(data).encode(encoding='UTF8')
result = requests.post(url=url, data=data1,headers={"Content-Type": "application/json", "Charset": "UTF-8"})
ret = json.loads(result.text)
#print("ret:",ret)
sdk_info = ret.get('result').get('list')
dingding_number=[]
result = []
for dingding_info in sdk_info:
dingding_number.append(dingding_info.get('business_id'))
result.append(dingding_info.get('status'))
# print(sdk_info)
# print(dingding_number,result)
return sdk_info,dingding_number,result
(3)调用这两个函数,放在网站合适的位置就行,这里就需要传入前面在钉钉应用里面的一些参数了,即第(4)步。
appkey = '写自己的'
appsecret = '写自己的'
api_url = "https://oapi.dingtalk.com/gettoken?appkey=%s&appsecret=%s" % (appkey, appsecret)
processCode = 'PROC-D389C93F-AEC9-4988-83DB-504E49B330F1' # 这个是你在钉钉上创建的表单的单号。类似于我们html里面的form表单。以PROC开头的
sdk_info,dingding_number,result_status= SDKList(api_url, processCode) #获取钉钉提交的表单信息,特别是钉钉单号和审批状态