• 一个酷酷的flask应用。


    主要用到蓝图.

    # -*- coding: utf-8 -*-
    from flask import Flask,flash,request,render_template,jsonify,session,redirect,url_for,send_from_directory
    import logging
    
    #建立【logger】
    logger = logging.getLogger("app_log")
    #logger.setLevel(log_level)
    #建立【格式串】
    fmter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    #建立【文件句柄】并分别设置级别
    hdlr = logging.FileHandler("/home/app/logs/daily.log")
    #filehandler.setLevel(logging.ERROR)
    #【文件句柄】和【流句柄】使用【格式串】
    hdlr.setFormatter(fmt=fmter)
    #【logger】连接【句柄】
    logger.addHandler(hdlr=hdlr)
    logger.setLevel(logging.INFO)
    logger.critical('app has been restarted')
    app = Flask(__name__)
    app.secret_key='xf1x92Yxdfx8ejYx04x96xb4Vx88xfbxfcxb5x18Fxa3xeexb9xb9tx04xf0x96'
    app. config['SECRET_KEY'] = 'what_does_app_major_in'
    app.config.from_object(__name__)

      #**********************************蓝图注册********************************#
      app.register_blueprint(detail.api)

      #**********************************蓝图注册_end********************************#

    b

     1 @app.before_request
     2     def before_request():
     3         session.permanent = True
     4         app.permanent_session_lifetime = timedelta(days=30)
     5         url_after = request.environ['PATH_INFO']
     6         allow_list = ['login','static','api']
     7         path_list = filter(lambda x: x in url_after,allow_list)
     8         if not path_list:
     9             if 'username' not in session or session['username'] == '':
    10                 return redirect(url_for('login'))
    11             else:
    12                 loginname = "admin"
    13                 ip_dizhi = request.remote_addr
    14                 #记录登录信息    
    15                 logger.info("User's name is %s,ip is %s,visit %s" % (loginname,ip_dizhi,url_after))

    c

    @app.errorhandler(404)
        def page_not_found(error):
            logger.error('page not find')
            return render_template('page_not_found.html'), 404

    d

    @app.route('/', methods=['GET', 'POST'])
        def jump2summary():
            return redirect(url_for('summary'))
    @app.route("/login",methods=["POST","GET"])
        def login():
            if request.method=='POST':
                post_usr=request.form['username']
                post_psd=request.form['password']
                if not os.path.isfile(pwd_filename):
                    os.mknod(pwd_filename)
                    with open(pwd_filename, 'w') as f:
                        new_pwd = protected('admin')
                        f.write(new_pwd)
                with open(pwd_filename, 'r') as f:
                    tmp_pwd = f.read()
                if post_usr == 'admin' and protected(post_psd) == tmp_pwd:
                    session['username'] = post_usr
                    session['password'] = post_psd
                    logger.fatal('success login in')
                    return redirect(url_for('summary'))
                else:
                    return "(账号密码错误)"
            return render_template('login.html')
  • 相关阅读:
    1-4个人博客
    大二上学期软件工程概论学习进度表(第十六周)
    软件工程概论个人总结
    python+selenium 定位元素的主要方法
    python+selenium 元素定位--iframe
    返回字符串中出现最多的字符
    TestNG中 ITestListener 的使用
    对数组对象按某些属性排序方法
    OSX 10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods
    IOS启动页设置适应ios8/9
  • 原文地址:https://www.cnblogs.com/homie/p/7715170.html
Copyright © 2020-2023  润新知