2024-09-30 03:23:50 发布
网友
有没有什么函数可以像PHP ob_start(myCallbackFunction)和ob_end_flush()一样,允许我修改Python框架(Django/others)中的布局和视图?谢谢!在
ob_start(myCallbackFunction)
ob_end_flush()
更新
<?php ob_start(function($res){ echo str_replace('test','new string',$res); }); ?> test test test test <?php ob_end_flush(); ?>
为了在Python中直接实现这个结果,可以像这里讨论的那样修补stdout/stderr
Temporarily Redirect stdout/stderr
对于Django模板,只需将调用包装在一个块(或一个单独的文件)中,并在必要时包含它们。在
值得一提的是,这种方法并不是很像Python,你应该考虑一下你要做什么,并找到一种更具Python式的方法来实现它。如果您告诉我们更多关于您的用例的信息,我们可能会提出更好的方法。在
让我们在python3中实现PHP的ob_start和{a2}函数。在
PHP
输出存储在一个文件中,也可以使用任何类型的流。在
from functools import partial output_buffer = None print_orig = print def ob_start(fname="print.txt"): global print global output_buffer print = partial(print_orig, file=output_buffer) output_buffer = open(fname, 'w') def ob_end(): global output_buffer close(output_buffer) print = print_orig def ob_get_contents(fname="print.txt"): return open(fname, 'r').read()
用法:
将打印
Hi John Bye John
为了在Python中直接实现这个结果,可以像这里讨论的那样修补stdout/stderr
Temporarily Redirect stdout/stderr
对于Django模板,只需将调用包装在一个块(或一个单独的文件)中,并在必要时包含它们。在
值得一提的是,这种方法并不是很像Python,你应该考虑一下你要做什么,并找到一种更具Python式的方法来实现它。如果您告诉我们更多关于您的用例的信息,我们可能会提出更好的方法。在
让我们在python3中实现
PHP
的ob_start和{a2}函数。在输出存储在一个文件中,也可以使用任何类型的流。在
用法:
^{pr2}$将打印
相关问题 更多 >
编程相关推荐