zoukankan      html  css  js  c++  java
  • flask信号

    复制代码
    from blinker import Namespace
    from datetime import datetime
    from flask import request
    
    namespace = Namespace()
    
    login_signals = namespace.signal('login')
    
    
    def login_log(sender,username):
        #一般实际开发中,要记录用户名,登录时间,用户ip
        login_time = datetime.now()
        user_ip = request.remote_addr #获取远程用户的ip地址
        log_line = '{username}*{user_ip}*{login_time}'.format(username=username,user_ip=user_ip,login_time=login_time)
    
        with open('login.txt','a') as fp:
            fp.write(log_line+'
    ')
    
    login_signals.connect(login_log)#监听这个函数
    复制代码
    复制代码
    from flask import Flask,request
    from signals import login_signals
    from blinker import Namespace #信号
    
    # namespace = Namespace()#实例化一个对象
    # fire_signal = namespace.signal('fire') #定义一个信号
    #
    #
    # #监听信号
    # def fire_bullet(sender):
    #     print(sender)
    #     print('start fire bullet')
    #
    # fire_signal.connect(fire_bullet)#监听这个信号,有信号就执行这个函数
    #
    #
    # #发送一个信号
    # fire_signal.send()
    
    
    #实际情况使用场景:定义一个登录的信号,以后用户登录进来以后
    #就发送一个登录信号,然后能够监听这个信号
    #在监听到这个信号以后,就记录当前这个用户登录的信息
    #用信号的方式,记录用户的登录信息
    
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def hello_world():
        return 'hello_world'
    
    
    @app.route('/login/')
    def login():
        #同过查询字符串的方式来传递username这个参数
        username = request.args.get('username')
        if username:
            login_signals.send(username=username)#发送信号,可以携带参数
            return '登录成功'
        else:
            return '请输入用户名'
    
    if __name__ == '__main__':
        app.run()
    复制代码

     文章出处   https://www.cnblogs.com/wuheng-123/p/9752185.html

  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/AbnerLc/p/11741858.html
Copyright © 2011-2022 走看看