klepto dir_archive的键?

时间:2019-05-16 12:24:42

标签: klepto

我创建了一个klepto dir_archive。

在随后的档案访问中,如何确定档案密钥而不将整个档案加载到内存中?

1 个答案:

答案 0 :(得分:1)

像这样吗?

 function rci_theme_enqueue() {

    if ( !is_singular( 'shortcodes' ) ) {

        // enqueue main style.
        wp_enqueue_style( 
            'app', 
            get_template_directory_uri() . '/spa/dist/css/app.css' 
        );

        // register the script.
        wp_register_script( 
            'vue_app', 
            get_template_directory_uri() . '/spa/dist/app.js',
            array(), 
            '1.0.0', 
            true 
        );

        // localize the script with new data.
        global $post;
        $app_data = array(
            'rest_url' => untrailingslashit( esc_url_raw( rest_url() ) ),
            'theme_url' => get_template_directory_uri(),
            'app_path' => $post->post_name, // page where the custom page template is loaded.
        );

        wp_localize_script( 'vue_app', 'app_data', $app_data );

        // enqueued script with localized data.
        wp_enqueue_script( 'vue_app' );
    }
}
add_action( 'wp_enqueue_scripts', 'rci_theme_enqueue' );

然后重新启动会话...

>>> import klepto as kl
>>> kl.archives.dir_archive()
dir_archive('memo', {}, cached=True)
>>> d = _
>>> d['a'] = 0
>>> d['b'] = 1
>>> d['c'] = 2
>>> d
dir_archive('memo', {'a': 0, 'c': 2, 'b': 1}, cached=True)
>>> d.dump()
>>> 

如果您需要一些特殊的方法,也可以使用几种私有方法:

>>> import klepto as kl
>>> d = kl.archives.dir_archive()
>>> d
dir_archive('memo', {}, cached=True)
>>> d.archive.keys()
['a', 'c', 'b']

但是,要点是:通过使用>>> d.archive._keydict() {'a': None, 'c': None, 'b': None} 属性,您可以轻松地与dir_archive进行交互而不加载它。