我正在尝试获取 Redhat kickstart 文件并在 python 中修改它们,然后在服务器设置中使用它们。我的应用程序使用 python 从我的 Redhat Satellite 服务器中卷曲原始的 kickstart 文件,然后我正在对 kickstart 文件中的某些值进行字符串替换。当我在 python 中 curl 文件时,它以多行字符串的形式返回,这是我需要的,以便 redhat kickstart 正确解释文件。但是,当我通过这些框架之一(web2py、bottle、flask)返回字符串变量时,发生了一些事情并且它没有将它作为多行字符串返回,我需要它来保留原始文件的确切格式除了区域我改变。我不想将我的 kickstart 文件放在模板中,因为我通过卫星管理它们,如果我从卫星上卷曲文件,那么它会拾取任何修改,而无需每次都进入模板。然后在模板或其他东西中,我要么在没有模板的情况下返回字符串,要么在模板文件中只将 1 个变量作为整个 kickstart 文件传递给模板。
@route('/kickstart/<name>')
def kickstart(name):
ks = vula.kickstarter.kickstart.Kickstarter()
ks_file = ks.getKickstartFile()
return pystache.render('{{kickstart}}', {'kickstart': ks_file})
这是我的vula包中的方法。它完全按照我需要的方式返回文件。但是在这和通过框架返回这个值之间再次发生了一些事情。
def getKickstartFile(self):
response = urllib2.urlopen('https://my-satellite-server/core-kickstarter')
ks_file = response.read()
return ks_file
我开始使用 Bottle 作为框架,但我发现一个声明说它们不能返回多行字符串,所以从头开始。我搬到了 Flask,但目前 Flask 正在做同样的事情。我仍在学习 python,可能我做错了什么,但我需要任何帮助才能使其正常工作。我想输出一个多行字符串。我了解您使用
""" or '''
对于多行字符串,但即使您这样做并通过框架发送它,它仍然会作为一条连续的线打印到屏幕上。我究竟做错了什么?作为最后的手段,如果我不能输出多行字符串,我将被迫将 kickstart 文件放入模板中。