我正在为我的项目使用webpy框架。我想从我的webpy程序传递一个文件并将其显示在html页面上(文件可能是任何文本文件/程序文件)。我使用webpy程序中的以下函数传递了一个文本文件。
class display_files:
def GET(self):
wp=web.input()
file_name=wp.name
repo_name=wp.repo
repo_path=os.path.join('repos',repo_name)
file_path=os.path.join(repo_path,file_name)
fp=open(file_path,'rU') #reading file from file path
text=fp.read() #no problem found till this line.
fp.close()
return render.file_display(text) #calling file_display.html
当我尝试从'file_display.html'显示文件(此处为'text')时,它会连续显示而不识别换行符。这是我的html文件。
$def with(content)
<html>
<head>
<meta http-equiv="Content-Type" content="text/string;charset=utf-8" >
<title>File content</title>
</head>
<body>
<form name="file_content" id="file_content" methode="GET">
<p> $content</p>
</form>
</body>
<html>
如何在html页面中显示文件。
答案 0 :(得分:0)
看起来您可能需要全局替换任何&lt;或者&gt;与&amp; lt;或&amp; gt;分别为:
答案 1 :(得分:0)
HTML将空白字符数量视为单个空格。如果您显示的文件包含以下文本:
line one
line two with indent
呈现的file_display.html
将包含此HTML:
<p> line one
line two with indent</p>
但是,换行符和两个空格将被视为一个空格,在浏览器中它将如下所示:
line one line two with indent
The pre
element告诉浏览器其中的文本已预先格式化,因此应保留换行符和空格。因此,您的模板应如下所示:
<form name="file_content" id="file_content" methode="GET">
<pre>$content</pre>
</form>
至于Joseph的建议,web.py模板系统将为您处理转义。如果您的文件包含<
或>
等字符,则会将其替换为<
和>
。