python类testing()的实例源码

web.py 文件源码 项目:courses.uno 作者: BenDoan 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def create_app():
    app = Flask(__name__)
    app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 7776000 # 3 months

    app.logger.setLevel(logging.INFO)

    app.register_blueprint(main, url_prefix='')
    app.register_blueprint(classes, url_prefix='/classes')
    app.register_blueprint(rooms, url_prefix='/rooms')
    app.register_blueprint(teachers, url_prefix='/teachers')

    app.jinja_env.globals.update(get_term=get_term, get_term_from_date=get_term_from_date)

    app.term_data = None
    def get_term_data():
        if current_app.term_data is None:
            if current_app.testing:
                current_app.DATA_DIR = TEST_DATA_DIR
            else:
                current_app.DATA_DIR = DATA_DIR
            data_path = path.join(current_app.DATA_DIR, ALL_COURSES_FNAME)

            if not path.exists(data_path):
                print("Couldn't find term data at {}, exiting".format(data_path))
                sys.exit(1)

            logging.info("Loading term data from %s...", data_path)
            with open(data_path) as f:
                courses_dict = json.load(f, object_pairs_hook=OrderedDict)
                current_app.courses_meta = courses_dict['meta']
                current_app.term_data = courses_dict['term_data']

                current_app.term_key_to_name = get_term_mapping(current_app.term_data)
                current_app.term_name_to_key = {v:k for k, v in current_app.term_key_to_name.items()}
            logging.info("Term data loaded")

        return current_app.term_data
    app.get_term_data = get_term_data

    @app.before_request
    def before_request():
        get_term_data()

    @app.context_processor
    def inject_user():
        return {
            "courses_meta": current_app.courses_meta,
            "last_updated": datetime.datetime.fromtimestamp(current_app.courses_meta['time']).strftime("%Y-%m-%d"),
            "term_key_to_name": current_app.term_key_to_name,
            "term_name_to_key": current_app.term_name_to_key
        }

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.html'), 404

    return app


问题


面经


文章

微信
公众号

扫码关注公众号