簡體   English   中英

Python Flask SQL 查詢到 Z4C4AD5FCA2E7A3F74DBB1CED00381AA4

[英]Python Flask SQL query to HTML page table

我最近啟動了一個小型 web 應用程序項目,它使用 nmap 掃描網絡並將表結果拉回 UI(html 頁面)。 發現腳本運行良好,並將結果發送到 SQL 數據庫。 我正在使用的第二個腳本旨在從 SQL 中提取結果並在 HTML 中創建一個表。 我已經能夠使用 Jinja2 將結果輸入 HTML 但格式都搞砸了。 已經有幾天了,我真的很掙扎,所以我想我會尋求幫助。 The application.py code with the SQL query is below: ''' from flask import Flask, render_template from jinja2 import Template import pandas as pd import pandas import pyodbc import urllib from sqlalchemy import create_engine

app = Flask(__name__)

@app.route('/')
def index():
return render_template('/layout.html')

@app.route('/Dashboard')
def Dashboard():
return render_template('/Dashboard.html')

@app.route('/Network')
def Network():
params = 'DRIVER={ODBC Driver 17 for SQL Server};' \
         'SERVER=localhost;' \
         'PORT=1433;' \
         'DATABASE=;' \
         'UID=SA;' \
         'PWD=reallyStrongPwd123;'

params = urllib.parse.quote_plus(params)

db = create_engine('mssql+pyodbc:///?odbc_connect=%s' % params)
df = pandas.read_sql_query("SELECT * FROM dbo.discovery", con = db ) #hosts

df = pandas.DataFrame(df, columns=.      
['host','hostname','hostname_type','protocol','port',
'name','state','product','extrainfo','reason','version','conf','cpe'])

return render_template('/Network.html', df=df)


@app.route('/Vulnerabilities')
def Vulnerabilities():
return render_template('/Vulnerabilities.html')

if __name__ == "__main__":
app.run(debug=True)
'''

HTML頁面代碼如下:(保留大部分頁面)

<table>
<tr> {{ df }} </tr>
</table>

由於某種原因,我無法在此處附加圖像,因此下面是 HTML 頁面中的 output

host hostname hostname_type protocol port name state \ 0 10.0.0.1 None None tcp 22 ssh filtered 1 10.0.0.1 None None tcp 23 telnet filtered 2 10.0.0.1 None None tcp 53 domain open 3 10.0.0.1 None None tcp 80 http open 4 10.0.0.1 None None tcp 443 http open 5 10.0.0.1 None None tcp 49152 upnp open 6 10.0.0.131 None None tcp 80 upnp open 7 10.0.0.131 None None tcp 139 tcpwrapped open 8 10.0.0.131 None None tcp 445 microsoft-ds open 9 10.0.0.131 None None tcp 515 printer open 10 10.0.0.131 None None tcp 631 upnp open 11 10.0.0.131 None None tcp 9100 jetdirect open 12 10.0.0.157 None None tcp 62078 iphone-sync open 13 10.0.0.218 None None tcp 1433 ms-sql-s open 14 10.0.0.254 None None tcp 49152 upnp open product extrainfo \ 0 None None 1 None None 2 dnsmasq None 3 lighttpd None 4 lighttpd None 5 Portable SDK for UPnP devices Linux 3.12.14; UPnP 1.0 6 Epson Stylus NX230 printer UPnP UPnP 1.0; Epson UPnP SDK 1.0 7 None None 8 None None 9 None None 10 Epson Stylus NX230 printer UPnP UPnP 1.0; Epson UPnP SDK 1.0 11 None None 12 None None 13 Microsoft SQL Server vNext tech preview None 14 Cisco-Linksys E4200 WAP upnpd UPnP 1.0 reason version conf cpe 0 no-response None 3 None 1 no-response None 3 None 2 syn-ack 2.78 10 cpe:/a:thekelleys:dnsmasq:2.78 3 syn-ack None 10 cpe:/a:lighttpd:lighttpd 4 syn-ack None 10 cpe:/a:lighttpd:lighttpd 5 syn-ack 1.6.22 10 cpe:/o:linux:linux_kernel:3.12.14 6 syn-ack None 10 cpe:/o:linux:linux_kernel 7 syn-ack None 8 None 8 syn-ack None 10 None 9 syn-ack None 10 None 10 syn-ack None 10 cpe:/o:linux:linux_kernel 11 syn-ack None 3 None 12 syn-ack None 3 None 13 syn-ack 14.00.3048 10 cpe:/a:microsoft:sql_server 14 syn-ack None 10 cpe:/h:cisco:e4200 

然而,output 導致了這種混亂。 所以我的問題是我怎樣才能把它變成一張桌子,我做錯了什么?

在此處輸入圖像描述

我還不能添加評論,所以我只是假設我對我要去的地方是正確的,如果不糾正我......無論如何,我理解你面臨的問題是渲染 pandas 數據框架在 Html 一側變得凌亂......嘗試添加:

return render_template('simple.html',  tables=[df.to_html(classes='data', header="true")])

至於參考如何將 pandas dataframe 顯示到現有的 flask ZFC35FDC70D5FC69D23E 表中? https://pythonexamples.org/pandas-render-dataframe-as-html-table/希望這會有所幫助(:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM