2017-03-09 5 views
0

나는 web.py를 연습하고 있습니다. 웹 서버에서 sqlite3 데이터베이스가 있고 http 방문으로 레코드를 반환하고 싶습니다. 어떻게하면 브라우저의 각 레코드 사이에 줄 바꿈을 추가 할 수 있습니까? 여기 web.py의 열로 sqlite3 테이블을 반환하는 방법

내가 브라우저에서 무엇을 얻을, 그리고 내가 좋아하는, 각 rocord 사이 LINEBREAK를 추가 할 : 아래

[('2017-02-23 10:19:13', 1.68, 1.01),  
('2017-02-23 10:19:51', 1.03, 1.9),  
('2017-02-23 10:21:41', 1.97, 1.6),  
('2017-02-23 10:22:39', 1.57, 1.75), 

내 코드 :

import web 
import sqlite3 

render = web.template.render('templates/') 

urls = (
    '/', 'index' 
) 


class index: 
    def GET(self): 
     conn = sqlite3.connect('customer-01.db') 
     cursor = conn.execute("SELECT * from datasource") 
     return cursor.fetchall() 

if __name__ == "__main__": 
    app = web.application(urls, globals()) 
    app.run() 

enter image description here

+0

안녕 조, 스택 오버플로에 오신 것을 환영합니다! 사람들이 귀하의 질문에 답변하도록 돕기 위해 [mcve]를 제공 할 수 있습니까? 그런 식으로 우리는 당신이 시도한 것을 볼 수 있으며 최선의 행동 방침에 대해 조언합니다. 건배! – OldTinfoil

답변

0

귀하의 return cursor.fetchall() 브라우저에서 특수 서식없이 표시되는 텍스트를 반환합니다. 그 이유는 하나의 긴 줄입니다.

브라우저에서 더 잘 보이게하려면 HTML을 반환하십시오. 그런 다음 각 줄 사이에 <br/>을 추가 할 수 있습니다. (또는 형식을 표 또는 등으로 지정할 수 있습니다.)

web.py 템플릿을 사용할 수 있지만 간단하게 유지해야하므로 do는 명시 적으로 Content-Type을 설정하고 HTML을 추가합니다.

업데이트하여 GET :

def GET(self): 
    conn = sqlite3.connect('customer-01.db') 
    cursor = conn.execute("SELECT * from datasource") 
    web.header('Content-Type', 'text/html') # you're sending HTML rather than text 
    ret = [str(x) for x in cursor.fetchall()] # Convert each row to string 
    return '<br/>'.join(ret)     # return single string, with <br/> between rows