
是的,纯Python!
不用HTML,不用CSS,不用java script…以及多如牛毛汗牛充栋各种牛逼闪亮的前端技术,100%python可以搭建一个数据库查询网站。
用Streamlit可以做到!另外只用了numpy和sqlite,代码不到60行,其中还包含几行防注入攻击的代码。Streamlit官网的文档也太过于简略了,网上资料又比较少,所以特此分享。
该案例已经过简化,在本地跑没问题,做过验证。待有时间把它部署到网上,届时再和大家分享部署的心得。
界面是这样式儿滴:
代码是这样式儿滴:
#Coding:utf-8import streamlit as stimport numpy as npimport sqlite3class query: def __init__(self,cas_number): self.__casno=cas_number def Casnumberquery(self): result_List_0=[] row=0 cas_query_0='''SELECT ori_sn,casno,cnname,enname,remark,legID FROM CNOTHERS WHERE casno='CAS_X';''' cas_query_1=cas_query_0.replace('CAS_X',str(self.__casno)) result_0=chemicals.execute(cas_query_1) for chem in result_0:#解包到列表中 result_List_0.append(chem[5]) result_set_0=set(result_List_0)#转换列表为集合(可去重) if len(result_set_0)==0:#如果列表为空,意味着未检索到结果 return None else: leg_query='''SELECT leg_cn,leg_en,pub_date FROM CNLAWS WHERE legID='LEG_X';''' leg_arr=np.empty((len(result_set_0)+1,3),object)#为储存查询结果,预制了一个空数组 leg_arr[0,:]=(['法规中文名称','English Title','发布日期'])#标题列 for leg_ID in result_set_0:#将数据库检索结果写入数组 leg_query_1=leg_query.replace('LEG_X',leg_ID) leg_result_1=chemicals.execute(leg_query_1).fetchone() row+=1 leg_arr[row,:]=([leg_result_1[0],leg_result_1[1],leg_result_1[2]]) return leg_arr#返回数组def findillegalchar(casnum): ''' 检验查询输入字符,防止注入攻击 ''' safetynum=['0','1','2','3','4','5','6','7','8','9','-'] for char in casnum: if char not in safetynum: return charst.Title('化学品关联法规查询')warehouse=sqlite3.connect(r'C:\chemicals\chem2reg\cisdatabase.db') chemicals=warehouse.cursor()whichcasno=st.text_input('Enter CAS number', value='', max_chars=None, key=None, type='default', help='CAS号形如1336-21-6')if whichcasno!='': if findillegalchar(whichcasno): st.write(whichcasno,'包含非法字符:',findillegalchar(whichcasno)) else: st.write(whichcasno,'的关联法规为:') query_test=query(whichcasno) df_result_0=query_test.Casnumberquery() if df_result_0 is not None: st.dataframe(data=df_result_0) else: st.write('oops!未检索到关联法规数据')以上代码的注释应该是比较明了的,如果有问题请留言,必知无不言。
作为业外人士,说句搓火的话,我觉得大牛都是在后端,不屑于做前端。所以直到今天,前端技术乱七八糟的,也没个人一统江湖。话说回来,赚钱还是前端赚钱,不过也都是辛苦钱。
Streamlit仍在发展中,盼望功能早日更加强大。
总结以上是内存溢出为你收集整理的纯Python搭建数据库查询网站实践全部内容,希望文章能够帮你解决纯Python搭建数据库查询网站实践所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)