원하는 HTML을 생성하는 다음 코드가 있습니다. 그러나 그것은 그것을 원하는 곳이 아닌 페이지의 상단에 인쇄합니다.2 차원 목록에서 HTML 표를 생성하려면 어떻게합니까?
def fixText(self,text):
row = []
z = text.find(',')
if z == 0: row.append('')
else: row.append(text[:z])
for x in range(len(text)):
if text[x] != ',': pass
else:
if x == (len(text)-1): row.append('')
else:
if ',' in text[(x+1):]:
y = text.find(',', (x+1))
c = text[(x+1):y]
else:
c = text[(x+1):]
row.append(c)
return row
def output(self):
output = ""
fob=open('files/contacts.txt','r')
tup = []
while 1:
text = fob.readline()
if text == "": break
else: pass
if text[-1] == '\n':
text = text[:-1]
else: pass
row = self.fixText(text)
tup.append(row)
output = tup.sort(key=lambda x: x[0].lower())
_list1 = len(tup)
i = 0
table = ""
while i < _list1:
j = 0 #need to reset j on each iteration of i
_list2 = len(tup[i])
print("<tr>")
while j < _list2:
print("<td>" + tup[i][j] + "</td>")
j += 1
print("</tr>")
i += 1
return output
자세히 알 수 있듯이 HTML 코드를 인쇄하는 중첩 루프가 있습니다. 이것은 잘 작동하지만 모듈화 사이트에 삽입하려고하면 페이지 상단에 인쇄됩니다. 내 직감은 다음 코드가 내가 변경해야 할 부분이라는 것이다.
#!/usr/local/bin/python3
print('Content-type: text/html\n')
import os, sys
import cgitb; cgitb.enable()
sys.path.append("classes")
from Pagedata import Pagedata
Page = Pagedata()
print(Page.doctype())
print(Page.head())
print(Page.title("View Contact"))
print(Page.css())
html='''</head>
<body>
<div id="wrapper">
<div id="header">
<div id="textcontainer">{1}</div>
</div>
<div id="nav">{2}</div>
<div id="content">
<h2>Heading</h2>
<h3>Sub Heading Page 2</h3>
<table>
<tbody>
{0}
</tbody>
</table>
</div>
<div>
<div id="footer">{3}</div>
</body>
</html>'''.format(Page.output(),Page.header(),Page.nav(),Page.footer())
print(html)
는 등 header
, footer
, 그 잘 작동으로 내 수업 페이지에 다른 기능이 있습니다.
예를 들어, 바닥 글이 div#footer
에 제대로 삽입되었습니다. 하지만 {0}
이 어디에 생성 테이블 si가 삽입되지 않았습니다.
당신은 당신이없이 인쇄하기 전에 broken code here.
미안하지만, 당신은 숫자 내부의 순서와 형식을 사용할 수 있습니다 , 'world') == "{1} {0}"format ('world', 'Hello')' – Rach