python模板

python模板

登录

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
import json
import requests

class Login:
def __init__(self,username,password):
# 账户名或者手机号
self.username = username #手机号
# 登录密码
self.password = password #数字密码
# 登陆接口
self.loginUrl = "xxxxx"

# 请求头
self.header = {
"Host": "xxxxx",
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"User-Agent": "xxxxx",
"Content-Length": "29",
}

# 请求体(必须有) self.body = "{}"
self.body = "{}"

def login(self):
# 用户名或账号
url = self.loginUrl + "?username=" + self.username + "&password=" + self.password#url根据接口来写
self.session = requests.session()
response = self.session.post(url=url, data=self.body, headers=self.header)
res = json.loads(response.text)
if res["code"] == 0:
print("登陆成功")
# 登录成功获取JWSESSION
self.jwsession = response.headers['JWSESSION']
print("jwsession:"+self.jwsession)
return self.jwsession
else:
print("登陆失败,请检查账号信息和密码是否正确")
self.status_code = 4
return False

发送邮件

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
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

class answer:
def __init__(self):
self.sender = 'xxxx' # 发信人邮箱
self.sender_name = "xybz" # 发信人昵称
self.password = 'xxxxx' # 授权码
self.receivers=['xx','xx'] # 收件人邮箱
self.receivers_name=['zhangsan'] # 收件人昵称
self.sub="这是一封测试邮件"# 邮件标题
self.msg="""

你好,这是我的博客:<a href='http://xybz.fun'>土豆番茄酱</a>


"""

def run(self):
try:
msg = MIMEText(self.msg, 'html', 'utf-8')#发送htnl则改'plain'为'html'
msg['From'] = formataddr([self.sender_name, self.sender])
# msg['To'] = formataddr([self.receivers_name[0],self.receivers]) # 收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = self.sub
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器
server.login(self.sender, self.password) # 发件人邮箱账号、邮箱授权码
# 发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(self.sender, self.receivers, msg.as_string())
server.quit() # 关闭连接
except smtplib.SMTPException as e:
print("error",e)

if __name__ == "__main__":
answer().run()

问题

1
TypeError: login() missing 1 required positional argument: 'self'

最近写代码的时候,一直报这个错,源代码类似下

1
2
3
4
5
6
class Login:
def login():
return TRUE

def main():
Login.login()

原因是调用函数需要实例化

改为

1
Login().login()

python的类调用与java有出入