Flask框架之信号使用场景

信号使用场景

  1. 定义一个登录的信号
  2. 用户登录进来就发送一个登录信号,然后能够监听这个信号
  3. 在监听到这个信号以后,就记录当前这个用户登录的信息
  4. 用信号的方式,记录用户的登录信息即登录日志

具体实现

创建登陆信号,以及监听

from blinker import Namespace 
from datetime import datetime 
from flask import request,g 

#创建登录信号 
namespace = Namespace() 
login_signal = namespace.signal('login') 

def login_log(sender): 
	# 用户名 登录时间 ip地址 
	now = datetime.now() 
	ip = request.remote_addr 
	log_data = "{uname}*{now}*{ip}".format(uname=g.uname, now=now, ip=ip) 
	with open('login_log.txt','a') as f: 
		f.write(log_data + "\n") 
		f.close() 
#监听信号 
login_signal.connect(login_log)

使用信号存储用户登录日志


from flask import Flask,request,g 
from signals import login_signal 

app = Flask(__name__) 

@app.route('/login/') 
def login(): 
	# 通过查询字符串的形式来传递uname这个参数 
	uname = request.args.get('uname') 
	if uname: 
		g.uname = uname 
		# 发送信号 
		login_signal.send() 
		return '登录成功!' 
	else: 
		return '请输入用户名!' 

if __name__ == '__main__': 
	app.run(debug=True)
	
发布了354 篇原创文章 · 获赞 4 · 访问量 7819

猜你喜欢

转载自blog.csdn.net/weixin_44733660/article/details/103971241