2013-12-19 144 views
1

我用搜索框創建了一個CGI網頁。我的腳本使用來自搜索框的輸入來查詢sqlite數據庫。顯示來自sqlite數據庫查詢的結果

現在,我要顯示(在我的網頁)符合搜索該行的所有列,但是當我做到以下幾點:

query = raw_input(desc) 
query = '%' + query + '%' 
cursor.execute("SELECT * from Table WHERE Column LIKE ?", (query,)) 
print cursor.fetchall 

網頁僅顯示查詢本身 - 無論從結果數據庫。

任何想法如何讓結果顯示?

+0

你應該實際調用'fetchall'不僅引用它。 – Hyperboreus

回答

2

想要致電cursor.fetchall();你只是顯示方法的表示否則:

print cursor.fetchall() 

,你看不到任何東西的原因是因爲在Python的方法對象的呈現使用尖括號,如HTML標籤:

>>> print c.fetchall 
<built-in method fetchall of sqlite3.Cursor object at 0x11059d9d0> 

您的瀏覽器不關於<built-in> HTML標記的任何內容,只是不會顯示它。

您可能希望創建一個實際的表的結果:

cursor.execute("SELECT * from Table WHERE Column LIKE ?", (query,)) 
print '<table>' 

for row in cursor: 
    print '<tr>{}</tr>'.format(''.join(['<td>{}</td>'.format(col) for col in row])) 

print '</table>' 
+0

如果我可以創建這張桌子,那將會很棒!但我嘗試用您建議的表格命令替換我的fetchall命令,並且我仍然在顯示中獲取查詢本身。 –

+0

您的問題中的代碼和我的答案都不會顯示SQL查詢,除非您的意思是顯示整個腳本源代碼。在瀏覽器中的腳本顯示中做任何*更改?你確定在這裏修改了正確的文件嗎? –

+0

我想我用了錯誤的名詞。它會顯示輸入到網站搜索框中的內容。因此,如果我在框中鍵入「基因」,結果顯示「基因」,而沒有別的。 –

相關問題