我创建了一个klepto dir_archive。
在随后的档案访问中,如何确定档案密钥而不将整个档案加载到内存中?
答案 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
进行交互而不加载它。